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