#!/usr/bin/perl
#

use RRDs;

my $network = "/proc/net/dev";
my $memory = "/proc/meminfo";
my $iwspy = "/sbin/iwspy |";

sleep 10;

open(NETWORK, $network);
while (<NETWORK>)
{
  next unless /eth0/;
  s/\s+/ /g;
  s/:\s+/:/g;
  ($recv, $recverr, $tran, $tranerr, $trancoll) = /eth0:(\d+) \d+ (\d+) \d+ \d+ \d+ \d+ \d+ (\d+) \d+ (\d+) \d+ \d+ (\d+)/;
  last;
}
# print "Network:$recv:$tran:$recverr:$tranerr:$trancoll\n";

RRDs::update ("/home/system-rrd/rrds/network-eth0.rrd",
              "--template", "recv:tran:recverrs:tranerrs:trancoll",
              "N:$recv:$tran:$recverr:$tranerr:$trancoll");



open(NETWORK, $network);
while (<NETWORK>)
{
  next unless /eth1/;
  s/\s+/ /g;
  s/:\s+/:/g;
  ($recv, $recverr, $tran, $tranerr, $trancoll) = /eth1:(\d+) \d+ (\d+) \d+ \d+ \d+ \d+ \d+ (\d+) \d+ (\d+) \d+ \d+ (\d+)/;
  last;
}
# print "Network:$recv:$tran:$recverr:$tranerr:$trancoll\n";

RRDs::update ("/home/system-rrd/rrds/network-eth1.rrd",
              "--template", "recv:tran:recverrs:tranerrs:trancoll",
              "N:$recv:$tran:$recverr:$tranerr:$trancoll");






open(NETWORK, $iwspy);
while (<NETWORK>)
{
  next unless /00:02:2D/;
  #s/\s+/ /g;
  #s/:\s+/:/g;
  ($rrd) = /([^ ]+)/; 
  ($quality) = /Quality (\d+\/\d+)/;
  ($signal) = /Signal -(\d+)/;
  ($noise) = /Noise -(\d+)/;
  #last;

if (/00:02:2D:05:44:05/) {$rrd="00022D054405";}
if (/00:02:2D:05:44:DB/) {$rrd="00022D0544DB";}

RRDs::update ("/home/system-rrd/rrds/$rrd.rrd",
              "--template", "signal:noise",
              "N:$signal:$noise");
print "iwspy:$rrd:$signal:$noise\n";
}

RRDs::update ("/home/system-rrd/rrds/$rrd.rrd",
              "--template", "signal:noise",
              "N:$signal:$noise");











open(MEMORY, $memory);
while (<MEMORY>)
{
  s/\s+/ /g;
  ($realfree, $shared, $buffers, $cached) = /^Mem: \d+ \d+ (\d+) (\d+) (\d+) (\d+)/ if /^Mem:/;
  ($swapfree) = /^Swap: \d+ \d+ (\d+)/ if /^Swap:/;
}

RRDs::update ("/home/system-rrd/rrds/memory-free.rrd",
              "--template", "realfree:swapfree:shared:buffers:cached",
	      "N:$realfree:$swapfree:$shared:$buffers:$cached");

# print "Network:$recv:$tran:$recverr:$tranerr:$trancoll\n";
# print "Memory:$realfree:$swapfree:$shared:$buffers:$cached\n";
