V1.4 Mailversand wenn Homebridge nicht läuft oder Fehler im Log

  • Version: 1.4


    Hallo zusammen,


    Ich hab mich mal wieder an ein kleines Script gemacht.
    Etwas verbesserte Version mit Kommentaren und Anpassungsmöglichkeit... wer Verbesserungen hat, immer her damit :)

    Außerdem ist in der neuen Version Logrotation aktiviert. Aktuell ohne Kompression oder Archivierung.


    Und zwar sendet das Script eine E-Mail wenn entweder im Homebridge-Log ein "Hit" auftritt oder der Homebridge-Service nicht läuft. Das ganze funktioniert natürlich unabhängig von der Homebridge!


    Ich nutze dafür die Funktion sendEmail - für die Installation bitte dieser Anleitung folgen (ACHTUNG! Die Anleitung ist nicht mehr aktuell, bitte meine Anweisungen im Spoiler nutzen): Raspbian Wheezy: E-Mails vom Raspberry Pi mit sendEmail verschicken



    Wer Fragen zur Einrichtung hat - ich gebe mein Bestes :)


    Nun zu meinem Script. Der Ordnung wegen habe ich in meinem Home einen Ordner scripts angelegt

    Code
    cd
    mkdir scripts
    touch scripts/check_homebridge.sh
    chmod 755 scripts/check_homebridge.sh

    Wie auch bei meinen anderen Scripts arbeite ich mit vim anstelle von nano! Bitte etwaige Unterschiede beachten!


    Variablen:

    log = Das Log das nach dem Begriff "Error" gescannt wird

    cntfile müssen in die gleiche Verzeichnis zeigen, in dem das check_homebridge.sh Script liegt.


    Ich habe das Script dann noch in die Crontab von pi eingetragen, damit alle 15 Minuten gecheckt wird


    Code
    crontab -e
    
    0,15,30,45 * * * * . /home/pi/scripts/check_homebridge.sh > /dev/null # Wichtig ist der Punkt nach den vier Sternen! Sonst funktioniert der Mailversand nicht

    Im /home/pi/scripts/check_homebridge.log wird der Output dieses Scripts protokolliert.


    Um zu verhindern, dass das log riesig wird, kann man das dem logrotation-daemon bekannt machen



    Liebe Grüße

    Daniel


    PS: Ich freue mich über Feedback ob das hilfreich ist :)

    7 Mal editiert, zuletzt von bankaifan () aus folgendem Grund: Version 1.4 - Anpassung an die neue Version von sendEmail - Anpassung auf logrotate.d

  • Zeigt es mir auch an, welchen Fehler es gibt, oder nur, dass es einen Fehler gibt?


    Finde es prinzipiell schonmal gut und wuerd ich mir auf jeden Fall genauer anschauen :)

  • Aktuell erstmal nur DASS. Ich will dann aber auf jeden Fall die Fehlermeldung noch mit in die Mail packen.

  • Idee finde ich Klasse, werde ich bestimmt bei gelegenheit mal testen wenn du es fertig hast ;)


    Wobei ich etwas bedenken habe was passiert wenn HB als systemd eingerichtet ist wo diese alle 10 sek neustartet wenn diese down ist und der Fehler weiter besteht wie letztemal wo die netatmo Server down gewesen sind, bekomme ich dann alle 10 sek eine Email?


    det vieleicht kann man das sogar mit deinem Backup Tool für die SD Karte verknüpfen z.B. CMD Backup fertig dann Email 8)

  • Das lässt sich theoretisch mit allem verknüpfen.
    Könnte auch prüfen ob ein Sensor etwas ins log geschrieben hat.


    Als in meinem Fall läuft der Check nur alle 15 Minuten und überprüft ob im Log die gleiche Anzahl Errors auftaucht wie beim letzten Check. Das heißt im schlimmsten Fall alle 15 Minuten eine Mail :)

    Aber ich bleib dran das ganze noch zu verbessern :)

  • die legt man im Laufe der Installation von sendEmail selbst an. Darin stehen die Mail-Konto-Daten.

    Habe ich als pi Schreibrechte für /var/log? Ich meine nein

  • Ihr und euer Fachchinesisch :D

  • Ihr und euer Fachchinesisch :D

    Isso! Komme da auch nicht hinterher ^^

  • Habe ich als pi Schreibrechte für /var/log? Ich meine nein

    dann packe es doch in den crontab von root

    Deine cron sachen in einer Datei ablegen und dann:

    (vorher testetn ob schon eine da ist)

    Code
    if [ -e /var/spool/crontabs/root]; then
     sudo cat /var/spool/crontabs/root  deins von oben Datei > /var/spool/crontabs/root
    else
     sudo cp cron-root /var/spool/crontabs/root
    fi

    ungefähr

    :)

  • das solltest Du oben mit reinschreiben, ist im Lite nicht von haus aus installiert.

    Ich dachte das wäre durch

    Zitat

    Ich nutze dafür die Funktion sendEmail - für die Installation bitte dieser Anleitung folgen: Raspbian Wheezy: E-Mails vom Raspberry Pi mit sendEmail verschicken

    klar.


    Neue Version :)

    - Logrotation eingebaut

    - Dokumentation ergänzt

    - Konfigurations-Bereich separiert

    - Email enthält jetzt die Fehlermeldungen bzw. bei nicht laufender Homebridge die letzten 30 Zeilen des Logs


    Zitat

    dann packe es doch in den crontab von root

    Ich arbeite nicht gerne mit Root. Ja es geht mit sudo aber bin da halt kein Freund von :)

  • Hallo bankaifan Ich habe es nun mal Probiert dein Plugin zu Installieren.


    Bei der Ausführung bzw. dem Test eine Email zu verschicken bekomme ich eine Fehlermeldung.


    Hast du dazu eine Idee?


    Code
    pi@raspberrypi2:~ $ mailnotify.sh "Test" "Dies ist eine Testnachricht."
    Jul 08 21:51:19 raspberrypi2 sendEmail[25279]: ERROR => TLS setup failed: SSL Version SSLv3 not supported
  • PS: Ich freue mich über Feedback ob das hilfreich ist :)

    Super Anleitung!

    Kannst du einen Tipp geben, wie man die erfolgreiche Installation des Scripts testen kann?


    EDIT:

    Mailversand lässt sich testen via


    mailnotify.sh "Test" "Dies ist eine Testnachricht."


    Script lässt sich testen via


    sh -x check_homebridge.sh

    Einmal editiert, zuletzt von Hannes Yo ()

  • Leider komme ich nicht weiter. Der Mailversand selbst funktioniert beim Test über

    mailnotify.sh "Test" "Dies ist eine Testnachricht."


    Im Logfile von check_homebridge.log erhalte ich allerdings regelmäßig die Fehlermeldung

    Code
    Aug 28 09:15:01 raspberry sendEmail[5836]: ERROR => ERROR => SMTP-AUTH: Authentication to smtp.gmx.net:587 failed.

    Was macht das Script anders, als das mailnotify.sh?

  • Ich musste mein Pi neu aufsetzen. Ich teste bei Gelegenheit den Mailversand nochmal.

    Dann kann ich euch sicherlich besser weiterhelfen

  • Sooo... heute bin ich endlich mal dazu gekommen, mir das genauer anzuschauen.


    Ich habe die Anleitung aktualisiert.
    Am besten nochmal von vorne Anfangen. Das sollte eigentlich klappen, ohne vorher sendEmail löschen zu müssen. Einfach nochmal drüber installieren und die beiden sed-Befehle absenden

  • bankaifan

    Hat den Titel des Themas von „V1.3 Mailversand wenn Homebridge nicht läuft oder Fehler im Log“ zu „V1.4 Mailversand wenn Homebridge nicht läuft oder Fehler im Log“ geändert.
  • Ich brauche STARTTLS lässt sich das Umsetzen?


    Code
    pi@raspberrypi2:~ $ mailnotify.sh "Test" "Dies ist eine Testnachricht."
    Dec 01 22:16:03 raspberrypi2 sendEmail[30766]: ERROR => TLS setup failed: SSL Version SSLv3 not supported