Pinger Script

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Pinger Script

    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?

    Quellcode

    1. #!/bin/bash
    2. # set -x
    3. #
    4. #
    5. # --- Sicherheitshalber den Pfad setzen ---------------------------------
    6. PATH=/bin:/usr/bin:/sbin:/usr/sbin
    7. #
    8. # Der tatsächliche Ansender der Mails
    9. mailr=service@service.de
    10. # Der angezeigte Absender
    11. mailf=pinger@pinger.de
    12. # Die Empfängerliste
    13. maile="service@service.de"
    14. # Der SMTP-Server
    15. mailh=mail.mail.de
    16. #
    17. # --- Diese Hostliste wird zur überprüfung zeilenweise abgearbeitet -----
    18. hostlist=/var/lib/pinger.hostlist
    19. #
    20. #
    21. # ****************** Definition der Funktionen ******* start ************
    22. #
    23. # --- Wenn nicht vorhanden, wird neue Hostliste erstellt ----------------
    24. if [ ! -f $hostlist ]; then
    25. cat <<EOF >$hostlist
    26. Server1
    27. Server2
    28. Server3
    29. Server4
    30. Server5
    31. Server6
    32. EOF
    33. fi
    34. #
    35. # --------- Test und Mail-Ausgabe der Status-Meldungen --
    36. errmailer () {
    37. # cat <<EOE |/usr/bin/pushmail -s $mailh -e $mailf -d test.de $maile
    38. 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
    39. .
    40. Der Verbindungsaufbau von Serverbla zu $1 schlug fehl !!!
    41. Bitte Überprüfen Sie umgehend ...blablabla
    42. EOE
    43. }
    44. # --------- Test und Ausgabe der Status-Meldungen --------
    45. checkhost () {
    46. echo -e "`date` - `ping -w 1 -c 1 $1 | grep 'bytes from' | awk '{ print $1,$2,$3,$4 }'`$2"
    47. }
    48. # --------- Test und Ausgabe der Status-Meldungen --------
    49. # checkhost () {
    50. # echo -e "`date` - `ping -w 1 -c 1 $1 | grep 'bytes from' | awk '{ print $1,$2,$3,$4 }'`$2"
    51. # }
    52. # ****************** Definition der Funktionen ******* ende *************
    53. # --------- Abarbeiten der hostlist-Datei -------------------------------
    54. echo .
    55. cat $hostlist | while read line
    56. do
    57. pingcount=$(ping -w 2 -c 1 $line |grep received|awk -F',' '{print $2}'|awk '{print $1}')
    58. if [ $pingcount -eq 0 ]; then
    59. checkhost $line "!! Host $line ist nicht erreichbar !!"
    60. errmailer $line
    61. else
    62. checkhost $line " - OK"
    63. fi
    64. done
    Alles anzeigen
  • sorry, hab mich falsch ausgedrückt.. also wenn einer der server nicht erreichbar ist, dann wird ja eine e-mail verschickt. der e-mail server liegt aber im gleichen netz. ich bräuchte jetzt eine authentifizierungsmöglichkeit, damit ich einen externen mail-server ansprechen kann damit die mails nicht als spam erkannt werden. verständlich worauf ich hinaus will?