#!/usr/bin/env perl $delay = 5; while (1) { $results = `netstat -su`; if (!($results =~ m/(\d+) packets received/)) { print("Could not find packets received count\n"); sleep($delay); next; } $received = $1; if (!($results =~ m/(\d+) packet receive errors/)) { print("Could not find packet error count\n"); sleep($delay); next; } $errors = $1; $time = time(); process_results($time, $received, $errors); $lasttime = $time; $lastreceived = $received; $lasterrors = $errors; sleep($delay); } sub process_results { my $time = shift(@_); my $received = shift(@_); my $errors = shift(@_); if (defined($lasttime)) { $timediff = $time - $lasttime; $receiveddiff = $received - $lastreceived; $errorsdiff = $errors - $lasterrors; print(scalar(localtime($time)), " (", $time, "): ", $receiveddiff / $timediff, " ", $errorsdiff / $timediff, "\n"); } }