perl script
Vašek Černý
vasekcerny na atlas.cz
Neděle Červenec 18 19:51:08 CEST 2004
Ahoj,
tento script pouzivam na zjistovani aktualni zatizeni linky a plneni
techto dat do rrdtool, kdyz tento script spustim manualne z konzole vse
je v poradku, ale kdyz pridam tento script do cronu, aby se spoustel
kazdych 5min tak bohuzel nefunguje. Pouzivam podobny na zjistovani
prumerneho pingu, ale ten funguje.
Script, omlouvam se je to dlouhe:
###############################################################
!/usr/bin/perl -w
use lib qw( /home/jirka/rrdtool-1.0.46/perl-shared/blib/lib
/home/jirka/rrdtool-1.0.46/perl-shared/blib/arch );
use lib qw( /usr/local/rrdtool-1.0.46-lib/perl
home/jirka/rrdtool-1.0.46/lib/perl );
use RRDs;
my $start=time;
my $rrd="/var/www/html/susicenetcz/traffic.rrd";
my $name="/var/www/html/susicenetcz/traffic.png";
if (not -f $rrd) {
RRDs::create ($rrd, "--start",$start-1, "--step",60,
"DS:eth1:GAUGE:600:U:U",
"DS:eth0:GAUGE:600:U:U",
"RRA:AVERAGE:0.5:1:3600",
);
my $ERROR = RRDs::error;
die "$0: unable to create `$rrd' : $ERROR\n" if $ERROR;
};
$etha1=`tc -s -d class show dev eth1 | grep root -A 3 | grep pps | awk
'{printf("%d",\$2)}'`;
$etha0=`tc -s -d class show dev eth0 | grep root -A 3 | grep pps | awk
'{printf("%d",\$2)}'`;
$eth1=$etha1*1;
$eth0=$etha0*1;
print "$eth1 - $eth0";
RRDs::update $rrd,"$start:$eth1:$eth0";
my $ERROR = RRDs::error;
die "$0: unable to create `$rrd' : $ERROR\n" if $ERROR;
RRDs::graph "$name",
"--title", "Prehled zatizeni linky ",
"--start", "now-24h",
"--end", "now",
"--imgformat", "PNG",
"--width=600",
"--height=200",
"--x-grid", "MINUTE:60:HOUR:1:HOUR:1:0:%H",
"DEF:a=$rrd:eth1:AVERAGE",
"DEF:b=$rrd:eth0:AVERAGE",
"LINE1:a#00b6e4:Vytizeni eth1 \\: $eth1\\r",
"LINE1:b#ff0000:Vytizeni eth0 \\: $eth0\\r",
;
if ($ERROR = RRDs::error) {
print "ERROR: $ERROR\n";
};
###############################################################
Pri definovani primo promene to funguje i v cronu. Je to zrejme nejaka
chyba pri spousteni prikazu v ` `.
P.S.: mozna je to nejaka hloupost, ale nejsem zkuseni programator.
Ahoj a dikes
Další informace o konferenci Linux