#!/usr/bin/perl $INPUTDIR=$ARGV[0]; $OUTPUTFILE=$INPUTDIR."/sum"; opendir(DIR, $INPUTDIR); while ($directory = readdir(DIR)){ if (-d "$INPUTDIR/$directory" and not $directory=~/\./) { if (-e "$INPUTDIR/$directory/sum") { # print "Analysing $INPUTDIR/$directory\n"; $analyze=1; open (IN, "$INPUTDIR/$directory/sum"); foreach () { $string=$_; if ($string=~/^in/) { $string=~s/^in_//; chop $string; ($ip, $bytes) = $string =~ /(\w+) (\w+)/; $trafic_in[$ip] = $trafic_in[$ip] + $bytes; } if ($string=~/^out/) { $string=~s/^out_//; chop $string; ($ip, $bytes) = $string =~ /(\w+) (\w+)/; $trafic_out[$ip] = $trafic_out[$ip] + $bytes; } } } } } closedir (DIR); if ($analyze) { open(OUT, ">$OUTPUTFILE"); for ($ip = 1; $ip <=254; $ip++) { print OUT "in_$ip $trafic_in[$ip]\n"; print OUT "out_$ip $trafic_out[$ip]\n"; } close (OUT); } else { print "Нечего анализировать\n"; }