Thread suche perlscript, wenn ping 4x negativ, dann mail (25 answers)
Opened by cc at 2004-01-11 17:49

betterworld
 2004-01-12 00:36
#827 #827
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Es ist immer etwas kritisch, Fehlermeldungen, die fuer Menschen bestimmt sind, zu parsen und automatisch auszuwerten. Schon wenn ein anderer User, der die locales nicht auf Deutsch gestellt hat, Dein Programm ausfuehrt, wird es scheitern. Auch ein Versionsupgrade von ping oder gettext kann Dir einen Strich durch die Rechnung machen.
Und in diesem Fall geht es tatsaechlich portabler und -- einfacher: Ping und damit system() hat einen Rueckgabewert, den Du nur ueberpruefen musst.

Weiterhin frage ich mich, warum Du Perl verwendest, da das Script zum allergroessten Teil aus Systemaufrufen besteht. Ich wuerde vorschlagen, entweder, wie schon zuvor empfohlen, die entsprechenden Perlmodule herzunehmen, oder das Script in Bash zu schreiben (es handelt sich offensichtlich um Linux). Beispiel:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if ping -c 4 example.com
then
 echo 'Alles klar'
 exit 0
else
 echo 'Ping geht nicht, ich versende eine eMail'
 sendmail -t <<EOF
From: me@here
To: you@there
Subject: Host down
EOF
  [ $? != 0 ] && echo 'Sendmail geht auch nicht :-('
  exit 1
fi


Das ist jetzt allerdings nicht getestet.\n\n

<!--EDIT|betterworld|1073860867-->

View full thread suche perlscript, wenn ping 4x negativ, dann mail