: 04 listopada 2009, 08:31
Coś masz namieszane z klamrami. Używaj lepszego edytora, który koloruje składnie i pokazuje gdzie się kończy dany nawias lub sekcja. I popraw styl pisania, bo skrypt wygląda paskudnie bez wcięć ;-) Mnie wyszło takie coś:
Nie sprawdzałem czy działa, bo nie mam odpowiednich modułów. Sprawdziłem tylko nawiasy i poprawiłem wcięcia.
Kod: Zaznacz cały
#!/usr/bin/perl
use RRDs;
open (PLIK_PING, "/root/ping.list") or die "open $alert_file: $!\n";
sleep 1;
if (seek(PLIK_PING,0,1))
{
while (<PLIK_PING>)
{
chop;
next if (/^\s*$/); # wyjazd z pustymi liniami
next if (/^#/); # wyjazd z #
if (/(\d+\.\d+\.\d+\.\d+) \; (\S+)/)
{
$ip = $1;
$opis = $2;
$ping = `/usr/bin/fping -e $ip`;
@tab = split(/\(/, $ping);;
@tab1 = split(/m/, $tab[1]);;
$ping = $tab1[0];
$ping=~s/\s//g;
if (!-e "/root/pingdb/$ip.rrd")
{
RRDs::create ("/root/pingdb/$ip.rrd",
"-s 120",
"DS :p ing:GAUGE:720:0:U",
"RRA:AVERAGE:0.5:1:720",
"RRA:MAX:0.5:1:5",
"RRA:LAST:0.5:1:600"
);
}
RRDs::update ( "/root/pingdb/$ip.rrd","N:$ping");
RRDs::graph ("/var/www/ping/$ip.gif",
"-w 700",
"-h 200",
"--title=Ping do $ip - $opis",
"DEF :p ing=/root/pingdb/$ip.rrd :p ing:AVERAGE",
"COMMENT: Maksymalnie Srednio Minimalnie Aktualnie \\n",
"GPRINT :p ing:MAX:%7.2lf%sms",
"GPRINT :p ing:AVERAGE:%7.2lf%smd",
"GPRINT :p ing:MIN:%7.2lf%smd",
"GPRINT :p ing:LAST:%7.2lf%sms",
"AREA :p ing#FF0000:Poziom ping'a w ms \\n"
);
} # end if (/(\d+)/)
} # end while
} # end seek
close PLIK_PING;