Hallo zusammen,
bin dabei ein pinger Script zu schreiben und möchte jetzt von einem externen Server pingen... bis jetzt haben wir nur ein internes Script. Jetzt soll aber eins auf einen externen Server hinterlegt werden. Was muss ich ergänzen um das zu realisieren?
Alles anzeigen
bin dabei ein pinger Script zu schreiben und möchte jetzt von einem externen Server pingen... bis jetzt haben wir nur ein internes Script. Jetzt soll aber eins auf einen externen Server hinterlegt werden. Was muss ich ergänzen um das zu realisieren?
Quellcode
- #!/bin/bash
- # set -x
- #
- #
- # --- Sicherheitshalber den Pfad setzen ---------------------------------
- PATH=/bin:/usr/bin:/sbin:/usr/sbin
- #
- # Der tatsächliche Ansender der Mails
- mailr=service@service.de
- # Der angezeigte Absender
- mailf=pinger@pinger.de
- # Die Empfängerliste
- maile="service@service.de"
- # Der SMTP-Server
- mailh=mail.mail.de
- #
- # --- Diese Hostliste wird zur überprüfung zeilenweise abgearbeitet -----
- hostlist=/var/lib/pinger.hostlist
- #
- #
- # ****************** Definition der Funktionen ******* start ************
- #
- # --- Wenn nicht vorhanden, wird neue Hostliste erstellt ----------------
- if [ ! -f $hostlist ]; then
- cat <<EOF >$hostlist
- Server1
- Server2
- Server3
- Server4
- Server5
- Server6
- EOF
- fi
- #
- # --------- Test und Mail-Ausgabe der Status-Meldungen --
- errmailer () {
- # cat <<EOE |/usr/bin/pushmail -s $mailh -e $mailf -d test.de $maile
- cat<<EOE|/opt/Bacula/sbin/bsmtp -8 -r $mailr -f $mailf -h $mailh -s "$1 ist am `date '+%d.%m.%y um %H:%M'` nicht erreichbar" $maile
- .
- Der Verbindungsaufbau von Serverbla zu $1 schlug fehl !!!
- Bitte Überprüfen Sie umgehend ...blablabla
- EOE
- }
- # --------- Test und Ausgabe der Status-Meldungen --------
- checkhost () {
- echo -e "`date` - `ping -w 1 -c 1 $1 | grep 'bytes from' | awk '{ print $1,$2,$3,$4 }'`$2"
- }
- # --------- Test und Ausgabe der Status-Meldungen --------
- # checkhost () {
- # echo -e "`date` - `ping -w 1 -c 1 $1 | grep 'bytes from' | awk '{ print $1,$2,$3,$4 }'`$2"
- # }
- # ****************** Definition der Funktionen ******* ende *************
- # --------- Abarbeiten der hostlist-Datei -------------------------------
- echo .
- cat $hostlist | while read line
- do
- pingcount=$(ping -w 2 -c 1 $line |grep received|awk -F',' '{print $2}'|awk '{print $1}')
- if [ $pingcount -eq 0 ]; then
- checkhost $line "!! Host $line ist nicht erreichbar !!"
- errmailer $line
- else
- checkhost $line " - OK"
- fi
- done