Netzwerk Monitor bzw Kein Ping dann sende Email

  • Hallo Freunde der Nacht ;)

    Habe leider nichts gefunden bei Google bzw mich wohl zu blöd angestellt.
    Bin auch nicht wirklich fit im Linux Thema vielleicht liegt es auch daran...

    Also ich habe zuhause eine Überwachungs Kamera die mir auch fleissig Email bei Alarm schickt.
    Nun könnte aber jeder Einbrecher kommen und den Strom abstellen oder die Kamera abstecken also würde ich gerne da auch eine Nachricht bekommen.
    Dachte mir das Raspberry Pi macht einen Ping alle 30sek auf 192.168.1.X und wenn der Ping weg ist soll er mir eine Email schicken die ich dann auf mein Handy bekomme.
    Wie kann ich das am besten anstellen? Dürfte ja eigentlich nicht so schwer sein oder!?
    Nur bin ich anscheinende zu doof da etwas zu finden :(

    Vielen lieben Dank schonmal!

  • Dieses Script macht alle 30 Sekunden ein ping und schlaegt Alarm wenn es keine Antwort bekommt:

    Ablegen in ein File namens pingmail
    Das File ausfuehrbar machen mit chmod 755 pingmail
    Das Script ausfuehren mit ./pingmail

    Noch zu machen: ein Mail schicken.
    Dafuer gibt es mindestens ein dutzend Anleitungen, auch in diesem Forum


  • Dachte mir das Raspberry Pi macht einen Ping alle 30sek auf 192.168.1.X und wenn der Ping weg ist soll er mir eine Email schicken ...

    Wenn Du nicht nur auf die IP-Adresse der Kamera, sondern zusätzlich auch auf einen lauschenden TCP-Port der Kamera prüfen willst, dann
    kannst Du statt ping, nc benutzen. Der Rückgabewert von nc ist wie bei ping, 0 wenn erreichbar und 1 wenn nicht erreichbar. Z. B.:

    Code
    nc -4nz -w 2 192.168.1.X TCP-Port < /dev/null; echo $?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Willst du bei ausfall der kamera wirklich alle 30 sec ne mail erhalten? Waere es nicht sinnvoller bei ausfall eine mail und wenn wieder erreichbar eine weitere? Sonst laeuft dein mail konto ruck zuck ueber. Realisieren kannst das einfach ueber ne schleife. Setze eine Variable auf 1 wenn du eine mail versendest. Ist beim naechsten durchlauf die variable auf 1 gesetzt und immer noch ping loss sende keine mail. Ist die variable 1 und das ziel wieder erreichbar sende eine mail mit ziel wieder erreichbar und setze die variable auf 0. Usw....

    Einmal editiert, zuletzt von drops (31. Dezember 2013 um 10:00)

  • Hallo,

    Erstmal danke für die schnellen Antworten und sorry das ich mich jetzt erst melde.
    Das Script werde ich mal probieren sobald mein Raspberry Pi da ist.
    Eine Anleitung für Email einrichten habe ich auch gefunden.

    Nur die letzte Antwort verstehe ich nicht ganz.
    Die Kamera ist ja immer an außer bei Zwangstrennung und wenn jemand sie raus zieht. Und genau dann will ich ja eine Email bekommen.
    Ich denke 30sek sind ok. Und wenn sie Nachts ausgeht werde ich wenigstens wach ;)

  • Er hat recht, ein automatisches System sollte sich moeglichst vernuenftig verhalten.

    Das folgende Script wartet eine Minute nach dem ersten Mail und verdoppelt bei
    jeder Runde die Wartezeit.

  • Und wenn deine Kamera eine Stoerung hat und du gerade auf der Arbeit bist laeuft bis abends dein Mailkonto ueber. Ich versuche immer Statusmails so gering wie unbedingt moeglich zu halten. Wie waere es mit einer Mail bei Ausfall der Kamera, und dann jede volle Stunde eine Erinnerung solange sie offline ist? Achja und natuerlich eine Mail mit Entwarnung wenn Sie wieder erreichbar ist.

  • HI und Danke für die vielen Vorschläge und Ratschläge!!

    Ich bekomme die Mails ja immer aufs Handy und die Kamera ist ja eigentlich nur an wenn wir nicht zuhause sind also im Urlaub.
    Könnte ich mich dann nicht einfach über VPN einwählen und das Script stoppen. Überprüfen was los ist und dann wieder starten?
    Ich habe auch gern wenig Mails aber möchte natürlich denn auch nachts geweckt werden falls da jemand einbrechen will.

    PS: hoffentlich kommt mein Raspberry morgen :(

  • Mir passieren dummerweise solche ausfaelle immer dann wenn ich nicht reagieren kann. Mir hat schk einmal ein amoklaufendes script das postfach geflutet. Daher fang ich sowas immer gerne im script ab. Wenn du willst kannst dir ja im stundenabstand eine erinnerung schicken lassen das die kamera noch offline ist. Aber alle 30sek ne mail ist unuebersichtlich. Evtl. Koenntest du dir auch die ersten 5min alle 30 sek ne mail schicken lassen und danach unterdruecken. Wenn du von 10 mails nicht wach wirst wirste es von 100 auch nicht ;)

  • Guten Abend,

    So habe seit heute mein Raspberry Pi :D
    Also ich hab Rasbian Wheezy installiert und die Mail nach dieser Anleitung eingerichtet.
    http://www.gtkdb.de/index_36_2296.html
    Jetzt wollte ich das Script von Tell erstellen mit "sudo nano /usr/local/bin/pingmail" aber jetzt weiß ich nicht genau ob ich echo "send Mail" lassen muss oder ob "mailnotify.sh" nehmen muss!? bevor ich da jetzt rumprobiere wollte ich gerne einmal hier nachfragen.

    Vielen Dank schonmal!

  • Hallte dich an die Anleitung aus deinem Mailscript. Das echo "send mail" war exemplarisch fuer die stelle im script an der die mail versendet wird und wuerde dir aktuell nur send mail auf der shell ausgeben. Ich benutze zum beispiel ssmtp zum mails versenden. Ans ausprobieren wirst du dich gewoehnen muessen sonst lernst du shell scripting nie ;)
    Gruesse
    Drops

  • Danke! Habe jetzt ein Klon von der Karte gemacht und dann versucht ssmtp einzurichten...hat leider nicht geklappt also bin ich wieder auf mein altes zurück.
    Hab ein interessantes Script gefunden denk ich nur leider verstehe ich es nicht ganz zB was soll $1 $2 $? muss da die ip Adresse hin!?
    http://wiki.ubuntuusers.de/Skripte/Ping-alive
    Und was ist besser ein Crontab jede minute oder ein sleep 60!?

    Danke und Grüße


  • ... nur leider verstehe ich es nicht ganz zB was soll $1 $2 $?

    Das sind Variablen in der Shell-Programmierung. $1 ist das 1. Argument, $2 das 2. Argument das einem Befehl übergeben wird. $? ist der
    Rückgabewert eines Befehls. Siehe im Internet nach einem tutorial für Shell-Scripte. Dort findest Du ausführliche Beschreibungen/Erklärungen.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (10. Januar 2014 um 18:27)

  • So hab mich heute mal ran gesetzt und gelesen und will nur kurz mein Lösungsweg posten. Vielleicht hat ja jemand sowas ähnliches vor.

    1. SMTP nach diese Anleitung -> http://www.gtkdb.de/index_36_2296.html (SSMTP wollte bei mir leider nicht.)
    2. Datei erstellt

    Code
    #CameraPingfailMail.sh
    #send Mail when Ping failed
    ping -c 1 192.168.168.168 > /dev/null
    if [ $? != 0 ]
    then
    cat << EOF | mailnotify.sh "Camera OFFLINE" "auto send by RPi"
    EOF
    fi

    3. Cron Job erstellt

    Code
    * * * * * /usr/local/bin/CameraPingfailMail.sh  > /dev/null 2>&1


    Fertig.

    Dann hab ich mir überlegt das es gut wäre einmal Pro Tag um 16Uhr eine Status Mail zu bekommen.
    Dieses Script werde ich aber nur aktivieren wenn ich wirklich im Urlaub bin.

    Code
    #CameraStatusMail.sh
    #send status Mail everyday at 16PM when Ping is ok
    ping -c 1 192.168.168.168 > /dev/null
    if [ $? = 0 ]
    then
    cat << EOF | mailnotify.sh "ALL GOOD - Camera ONLINE" "auto send by RPi" 
    EOF
    fi

    Cron Job

    Code
    0 16 * * * /usr/local/bin/CameraStatusMail.sh   > /dev/null 2>&1

    Ich hoffe das ist so ok wenn da Fehler drin sind kann sie mir ja bitte jemand verraten ;)
    Vielen Dank für eure Hilfe :)

    Grüße

    Einmal editiert, zuletzt von LateShape10138 (10. Januar 2014 um 21:10)

  • Ja Klar hab ich es probiert sonst hätte ich es ja nicht hier als Lösung zur Verfügung gestellt ;)
    Aber da ich halt neu bin unter Linux kann es ja sein das da trotzdem was falsch ist oder ineffektiv.

  • Ich habe es mir jetzt doch noch mal angeschaut.

    Ein paar kleine Änderungen hab ich dir mal eingebaut

    Zuallererst die erste Zeile:

    Bourne-Shell angeben

    und dann hab ich deine Schleife um eine elif Schleife erweitert. Hier wird geprüft ob die Uhrzeit 1600 beträgt. Falls dies so ist und der ping geklappt hat bekommst deine Mail. Das spart dir das 2te script. Allerdings würde es mich sehr stören wenn ich 60 Mails die Stunde bekommen sollte ;) Aber das ist deine Sache.

    Grüße

    drops

  • [ltr]Super vielen Dank!! [/ltr]
    [ltr]OK das "Bourne-Shell" hab ich gedacht brauche ich nicht weil es eh ein # davor hat.[/ltr]

    [ltr]Ja ok 60 Emails sind schon blöd aber ich sollte dann wohl wach werden und mich am Handy per SSH einloggen können und kurz "sudo/etc/init.d/cron stop" eintippen können.Obwohl[/ltr]
    [ltr]andererseits stört es mich auch ein wenig das es mit cronjob nur minimal jede Minute starten kann.[/ltr]

    [ltr]Vielleicht doch ein Script mit sleep 30 bauen was denn nach 10 Emails nur jede Stunde eine Email schickt…nur leider bin ich da noch nicht so fit.[/ltr]

    [ltr]Und wie kann ich ein script dann anhalten? bei cronjob kann ich ja den Dienst stoppen…[/ltr]


  • [ltr]OK das "Bourne-Shell" hab ich gedacht brauche ich nicht weil es eh ein # davor hat.[/ltr]

    Siehe Shebang.

    Zitat


    AppleHead
    [ltr]Und wie kann ich ein script dann anhalten? [/ltr]

    Was meinst Du hier mit "script anhalten"?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (10. Januar 2014 um 23:02)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!