#!/usr/bin/perl my @servers = ('192.168.0.1', '192.168.0.2'); my %last; my %first; my $first_total; my %cur; my %delta; my $oid = '1.3.6.1.4.1.2021.8.1.101.1'; my $comm = 'public'; my $first_run = 1; while (1){ my @time = localtime(time()); $time[2] = '0' . $time[2] if ($time[2] < 10); $time[1] = '0' . $time[1] if ($time[1] < 10); $time[0] = '0' . $time[0] if ($time[0] < 10); my $output = "$time[2]:$time[1]:$time[0]"; my $total; my $delta_total; foreach my $server (@servers){ my $result = `snmpwalk -v1 -c $comm $server $oid`; chomp $result; $result =~ s/.* //; $last{$server} = $cur{$server}; $cur{$server} = $result; if ($first_run){ $last{$server} = $result; $first{$server} = $result; } $delta{$server} = $cur{$server} - $last{$server}; my $fdelta = $cur{$server} - $first{$server}; $fdelta = '+' . $fdelta if ($fdelta > 0); $output .= " $server $cur{$server}("; $output .= "+" if ($delta{$server} > 0); $output .= "$delta{$server})($fdelta)"; $total += $cur{$server}; $delta_total += $delta{$server}; if ($first_run){ $first_total = $total; } } $first_run = 0; my $fdelta = $total - $first_total; $fdelta = '+' . $fdelta if ($fdelta > 0); $output .= " total $total("; $output .= '+' if ($delta_total > 0); $output .= "$delta_total)($fdelta)\n"; print $output; sleep 15; }