Hi Leute, ich versuche mich Grade an einem Shellscript, was die Erreichbarkeit der Clientrechner per Ping überwachen soll und im Fehlerfall (nicht per Ping erreichbar) mir eine E-Mail an meine @gmx.de Adresse senden soll. Leider ist meine Shellscript Kenntnisse sehr überschaubar und erhoffe mir bei Euch Hilfe. 🙄
Das Shellscript soll alle 15 Minuten die IP-Adressen anpingen und das Ergebnis in eine Textdatei (untereinander) schreiben ( 0 = nicht erreichbar 1 = erreichbar), die ich später auch in einem PHP-Script weiter grafisch Ausgebe (die Ausgabe in PHP habe ich bereits fertig). Mir fehlt nun die Möglichkeit die Textdatei mir den Ping Ergebnissen zu füllen. In PHP wollte ich dies nicht machen, da es recht viel Zeit in Anspruch nimmt, die Adressen anzupingen, daher der "Umweg" über ein Shellscript (geteilte Arbeit = weniger Ladezeit der Seite). Die Textdatei soll dann folgendermaßen aussehen:
1 1 1 1 1 ...etc
→ Im Idealfall alle Hosts per Piug erreichbar (in diesem Beispiel). 😉
Darüber hinaus soll wenn ein Host eben nicht erreichbar ist, mir eine E-Mail an mich (@gmx.de) Adresse versendet werden. Ein lokaler Mailserver läuft aber auf dem Linuxserver nicht. Was ich bisher habe, aber leider nicht funktioniert (daher wollte ich zunächst bei euch Hilfe einholen):
Im Beispiel habe ich 8 IP-Adressen genommen. In der Realität sind es knapp 30 (nicht hintereinander es gibt auch freie Adressen dazwischen).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #!/bin/bash #Hostliste HOSTS="192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4 192.168.1.5 192.168.1.6 192.168.1.7 192.168.1.8" #--------# #Log LOGFILE=ping.txt rm ping.txt 2> /dev/null echo "$(date)" > ping.txt echo "---------------------------" >> ping.txt echo "" >> ping.txt # --------------------------------------------# for myHost in $HOSTS do [ `ping -c 1 -i 1 $HOSTS | grep -wc 100.0%` -eq 0 ]; # 100% failed echo "0" >> ping.txt else echo echo "1" >> ping.txt fi done |
Ich hoffe Ihr könnt mir weiterhelfen!
Besten Dank im Voraus
Gruß Iv0ry