• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Script soll jede h pingen u. Ausgabe in eine Datei schreiben

byron1778

Hacker
Hallo,

ich will folgendes zuwege bringen!

Mein Script soll jede Stunde eine IP pingen und die Ausgabe die auf dem Bildschirm erscheinen würde in eine Datei schreiben, weiters soll die Datei dann immer um 22 zu einer best. Emailadresse verschickt werden!

Ich hab mir es so überlegt:

#!/usr/bin/perl -w

$\="\n";

$datum = `date +%k`;

print "IP";
chomp(my $ip=<STDIN>);

system = `ping -c 10 $ip`;

open (DATEI ,"$filename");
print DATEI "........ #genau hier weiss ich nicht wie ich die ausgabe von system ping reinbekomme?????????

close (DATEI);

if ($datum == 22) {

system "mail -s IP -u root email@irgendwo.com";

}

sleep (3600); #== 1ner stunde

Leider weiss ich aber nicht wie ich die Ausgabe am Bildschirm abfangen kann und weiterverarbeiten kann?

Kann mir jemand bitte helfen das Script richtig hinzubekommen?

Danke und mfg
Bernd
 

oc2pus

Ultimate Guru
warum nutzt du dazu nicht den cron ?

in der /etc/crontab folgendes eintragen:
jede Stunde also 1:59; 2:59; ... wird gepingt
59 * * * * root ping -c 10 xxx.yyy.zzz

um 22:00 email senden
0 22 * * * root mail -s IP -u root email@irgendwo.com

statt die Befehle direkt in die crontab zu schreiben, könntest du sie auch in ein script schreiben und dieses dann aufrufen ...

59 * * * * root myPinger
0 22 * * * root myMailer

und myPinger und myMailer ist dann scripte mit allen möglichen Befehlen ...

Beachte: alle Befehle besser mit Pfad angeben ;)
 
OP
B

byron1778

Hacker
Danke vielmals für die schnelle Antwort

Habe vergessen zu erwähnen, dass dieses Script für einen Freund ist, der es dann irgendwo in eine HP einbinden möchte!

Deswegen muss es ein Perlscript sein!

mfg
bernd
 

oc2pus

Ultimate Guru
Code:
system = `ping -c 10 $ip`;

open (DATEI ,"$filename");
print DATEI "........ #genau hier weiss ich nicht wie ich die ausgabe von system ping reinbekomme?????????

close (DATEI);

kannst du ungefähr so schreiben:
Code:
system = `ping -c 10 $ip > ausgabe.dat`;
dann steht das Ergebnis vom ping in ausgabe.dat (den Namenn kannst du ja vorher einlesn ==> $filename)

dann $filename bzw ausgabe.dat öffnen und verarbeiten ...
 
Oben