Ich muss ein Skript ausführen, sobald mein Himbeer-Pi mit dem Internet verbunden ist. Ich habe mich jedoch gefragt, ob es einen besseren Weg gibt, als nur jede Minute oder so Google anzupingen.
Mein Problem ist, dass meine Internetverbindung im Laufe des Tages 1-2 Mal unterbrochen wird, sodass ich eine Möglichkeit brauche, solche Ereignisse zu protokollieren.
Es ist nur die ADSL, die tagsüber abfällt. Ich habe nach einer Möglichkeit gesucht, mich zu protokollieren, wenn sie auftritt, auch wenn ich sie nicht bemerke. Ich denke, ich werde ein Skript wie vorgeschlagen einrichten.
ip
monitoring
ping
Matteo
quelle
quelle
Antworten:
Sie können Folgendes überprüfen:
wo wlan0 ist meine internetschnittstelle. Sie können jede Schnittstelle verwenden, die Sie verwenden, z. B. eth0, eth1, wlan0 für die Internetverbindung. Wenn die Ausgabe dieses Befehls 1 ist, sind Sie verbunden. Andernfalls können Sie ein Skript wie folgt schreiben:
Sie können auch den folgenden Befehl verwenden:
Dieses Skript funktioniert auch gut:
quelle
/etc/network/if-up.d
und / oder zu verwenden/etc/network/if-down.d
. Ich denke jedoch, dass Sie einen dazwischenliegenden Router haben, und das ist nicht hilfreich.Die Frage an Ihr System, ob es glaubt, eine Verbindung zu haben, ist ein Proxy-Maß für "Lässt mein ISP Sachen fallen?". Proxy-Maßnahmen sind per Definition ein vereinfachtes Modell des interessierenden Systems und bewahren keine Informationen. Die Frage kann nur beantwortet werden, indem Sie tatsächlich die Informationen erhalten, an denen Sie interessiert sind.
ping
ist eigentlich eine schlechte Auswahl an Tests, da es sich um ein ICMP-Protokoll handelt, das häufig speziell behandelt wird. Wenn Sie zum Beispiel an einer HTTP-Konnektivität interessiert sindwird zeigen, ob Sie tatsächlich Seiten bekommen können. Wenn Sie es abfragen, seien Sie höflich und schlafen Sie mindestens 60 Sekunden dazwischen. Ein ISP-Ausfall von weniger als einer Minute kann als "kein Ausfall" angesehen werden.
quelle
Angesichts Ihrer relativ einfachen Anforderung reicht ein einfacher Ping aus. Sie müssen Google nicht als Testhost verwenden. Wenn Ihr ISP über eine öffentliche Website verfügt, was heutzutage sehr wahrscheinlich ist, verwenden Sie diese.
Hier ist ein [Bash] -Skript, das ich für ein altes, angehaltenes Projekt von mir verwenden wollte. Es ist nur ein
ping
Host und sammelt Statistiken, die es bei Bedarf in das Systemprotokoll druckt. Die einzigen Abhängigkeiten sindping
undbc
. Beachten Sie, dass Sie eine nicht so alte Version von benötigenping
, dh eine Linux-fähige Versionping
.Das Skript verwendet vordefinierte Intervall- und Signaturwerte und kann interaktiv oder im Hintergrund ausgeführt werden - z. B. für den Fall, dass Sie eine Protokollierung benötigen. Es muss ein externer Befehl gegeben werden. Sie erhalten eine Flattererkennung und eine Link-Up / Down-Erkennung zum gleichen Preis ;-). Sie haben Hilfe eingebettet, falls Sie diese benötigen. Zögern Sie nicht zu fragen, wenn Sie Fragen haben.
Ich habe es als Übung geschrieben und dabei den Speicherbedarf so gering wie möglich gehalten. Ich erinnere mich, dass ich geplant hatte, es mit Dash laufen zu lassen, aber es gibt einen Bashismus, den ich bisher nicht loswerden konnte. In der Hoffnung, dass Sie es nützlich finden, geht es los:
quelle
Ein Netzwerktest ist wahrscheinlich am einfachsten zu implementieren, und ein wenig regelmäßiger Datenverkehr kann auch dazu beitragen, Zeitüberschreitungen zu vermeiden, wenn dies Teil des Bildes ist, warum Ihre Verbindung unterbrochen wird. Ich gehe davon aus, dass Sie nur den Link zu Ihrem ISP testen möchten. Pingen Sie also den Ping-Server des ISP, anstatt Google zu pingen.
Wenn Sie vermeiden möchten, Netzwerkverkehr zum Testen zu senden, ist es wahrscheinlich am besten, Informationen über den Netzwerkstatus von Ihrem Router zu erhalten. Wie das geht, hängt davon ab, welchen Router Sie verwenden. Je nachdem, was Sie haben, können Sie möglicherweise über Telnet, SSH, SNMP oder http darauf zugreifen. Je nachdem, was Sie verwenden, stehen verschiedene Optionen für die Skripterstellung zur Verfügung.
Mit gängigen Commodity-Routern für den Heimgebrauch haben Sie wahrscheinlich http, aber möglicherweise nicht viel anderes. Möglicherweise protokolliert Ihr Router bereits Netzwerk-Up / Down-Ereignisse. Ihr Problem besteht darin, eine http-Sitzung zu skripten, um die Authentifizierung beim Router auszuhandeln, und eine Kopie des vorhandenen Protokolls abzurufen, um eine Kopie auf Ihrem Raspbian zu aktualisieren. Die meisten Router speichern das Protokoll nicht und verlieren es beim Neustart.
Zu Ihren flexibelsten Optionen gehört wahrscheinlich das Ausführen einer alternativen Linux-basierten Firmware auf Ihrem Router.
quelle
Installieren Sie das hier beschriebene Shell-Skript: Coupure-Shell-Skript .
<ad>
Dies ist eine Art Ping, der weniger ausführlich und intelligenter ist .</ad>
Verwenden Sie es nach der Installation parallel, um Stürze auf Ihrem ISP (z. B. einem seiner DNS-Server, der die höchste Konnektivität aufweisen sollte) und im Internet hinter Ihrem ISP (z. B. einem der Google-Server) zu erkennen.
Mit diesen parallelen Läufen können Sie feststellen, ob Sie ein Problem mit Ihrem ISP-Zugang oder mit dem Internet dahinter haben.
quelle
zu @Ijaz Khan hinzufügen eine E-Mail-Benachrichtigung posten, wenn nicht vorhanden (wird später gesendet ...)
quelle