From b6e7dd331a438ce5ac5d75365d1da6ea98c33668 Mon Sep 17 00:00:00 2001 From: jkratoch <> Date: Fri, 24 Jul 2009 13:49:18 +0000 Subject: [PATCH] Initial multi-if version. --- bin/traf | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100755 bin/traf diff --git a/bin/traf b/bin/traf new file mode 100755 index 0000000..a4f6300 --- /dev/null +++ b/bin/traf @@ -0,0 +1,65 @@ +#! /usr/bin/perl +# $Id$ + +use strict; +use warnings; + +my($IFDEV,$SECS)=@ARGV; + +$SECS||=8; +my $IGNORE=qr/^(?:lo|sit|pan|tun|tap)\d*$/; + +$|=1; +# $if->{"rx"=>,"tx"=>} +my %last; +my $last_if=""; +my $dot; +for (;;) { + local *F; + open F,"/proc/net/dev" or die; + my $dev=do { local $/; or die; }; + close F or die; + $dev=~s/^Inter-.*\n face .*\n// or die $dev; + my $smth; + while ($dev=~s/^\s*(\S+?):\s*(\d+)(?:\s+\d+){7}\s+(\d+)\s.*\n//) { + my($if,$rx,$tx)=($1,$2,$3); + next if $IFDEV && $if ne $IFDEV; + next if !$IFDEV && $if=~/^$IGNORE$/o; + $last{$if}||={}; + my $last=$last{$if}; + if (defined $last->{"rx"}) { + if ($dot) { + print "\n"; + $dot=0; + } + if ($last_if ne $if) { + $last_if=$if; + print "$if:\n"; + } + # FIXME - done? + # 1798512 37387 + # 2147483648 32058 + # 1800104 35797 + sub fmt($$) + { + my($now,$last)=@_; + if ($now>=$last) { + return $now-$last; + } else { + return "=$now"; + } + } + print fmt($rx,$last->{"rx"})."\t".fmt($tx,$last->{"tx"})."\n"; + } + $last->{"rx"}=$rx; + $last->{"tx"}=$tx; + $smth++; + } + die $dev if $dev; + if (!$smth) { + print "."; + $dot++; + $last_if=""; + } + sleep $SECS; +} -- 1.8.3.1