b

Potrzebujesz pomocy z C, C++, perl, python, itp.
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

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ś:

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;
Nie sprawdzałem czy działa, bo nie mam odpowiednich modułów. Sprawdziłem tylko nawiasy i poprawiłem wcięcia.
ODPOWIEDZ