Welche Software gibt eine Warnung aus (PC-Lautsprecher), wenn 5 Minuten lang keine Internetverbindung besteht?
Mein Switch / Router scheint sich alle paar Tage zu trennen, und ich möchte ihn zurücksetzen, wenn es passiert.
PC -- TP-Link switch/router -- FO
192.168.x.1 -- 192.168.x.2 / x.y.z.a -- a.b.c.d
networking
audio
monitoring
Kokizzu
quelle
quelle
Antworten:
Sie können eine geänderte Version dieses Skripts verwenden, um das zu tun, was Sie möchten:
Wir sind "VERBUNDEN" Beispiel
Wenn das Debuggen aktiviert ist, können Sie sehen, was das Skript tut.
Wird mit einem gültigen Hostnamen ausgeführt, um den Status "Verbindung ist aktiv" zu demonstrieren.
Das Obige initialisiert einige Variablen und bestimmt, wann wir das letzte Mal die Schleife durchlaufen haben
$lastAccessTime
. Wir versuchen jetzt, Google zu pingen.Wir berechnen jetzt jede Ausfallzeit
$downTime
. Wenn der Ping fehlschlägt, setzen wir ihn$downTime
auf Null zurück und berechnen ihn neu$lastAccessTime
.Jetzt warten wir 15 Sekunden.
Jetzt prüfen wir, ob wir länger als 5 Minuten (300 Sekunden) unten waren. Dann wiederholen wir das Durchlaufen der
while
Schleife.Solange wir auf sind, passiert nichts anderes, als dass wir
ping
alle 15 Sekunden mit dem Befehl nachsehen.Wir sind "DISCONNECTED" Beispiel
Um nun zu simulieren, dass die Verbindung unterbrochen ist, tauschen wir den Hostnamen, den wir pingen, aus und verwenden einen gefälschten
google1234567890.com
. Wenn wir einen Lauf unseres Skripts mit aktiviertem Debugging wiederholen, wird nun eine tatsächliche Ausfallzeit berechnet.Beachten Sie, dass
$downTime
dies bisher 15 Sekunden entspricht. Wenn wir länger warten, sehen wir Folgendes:Wir haben 300 Sekunden Ausfallzeit. Wenn wir dies überprüfen, drucken wir die Nachricht aus
alert
.Dieser Status wird fortgesetzt, bis die Verbindung wiederhergestellt ist und die Verbindung
ping
erneut erfolgreich ist.Was ist also mit einem Sound?
Das ist einfach. Sie können dazu eine Vielzahl von Tools verwenden. Ich würde so etwas wie
sox
oder verwendenmplayer
, um eine Audiodatei wie eine.mp3
oder eine.wav
Datei mit einem geeigneten Ton abzuspielen, den Sie alle 15 Sekunden hören möchten, während die Verbindung unterbrochen ist.Ersetzen Sie einfach die
alert
obige Meldung durch diese Zeile, um Audio-Feedback zu erhalten, dass die Verbindung unterbrochen ist.Zeitüberschreitung bei Problemen mit Ping
Wenn Sie
ping
die oben beschriebene Methode verwenden, tritt wahrscheinlich eine langsame Verzögerungszeit auf, bei der esping
buchstäblich 10 bis 20 Sekunden dauert , bis sie fehlschlägt, wenn die Verbindung unterbrochen wird. Siehe meine Antwort auf diese U & L-Fragen und Antworten mit dem Titel: Wie leite ich die Ausgabe eines Befehls um? Beispiel: Verwenden Siefing
stattdessen das Befehlszeilenprogramm . Dieses Tool schlägt schneller fehl als das herkömmlicheping
.quelle
beep
Befehl, ist es sicher,chown /dev/tty0
damit ich ihn ohne benutzen kannsudo
?/dev/tty0
.sox
! @Kokizzu - slm hat Recht, die Berechtigungen auf dem/dev/tty0
Gerät in Ruhe zu lassen, aber Sie könnten ein Pseudo-Terminal-/dev/pts/[num]
Gerät - dieselbe Art von Zeichengerät,xterm
das zum Beispiel für jedes Fenster verwendet wird - mit etwas wiescreen
odertmux
oder sogar erhaltenssh
. Diese können Sie sicherer steuern, da sie/dev/ptmx
ohnehin nur Slave-Geräte für das Master- Gerät sind und nicht die gleichen Probleme verursachen wie beispielsweise ein benutzereigener/bin/login
Prozess - was im anderen Fall passieren könnte.aplay alert.wav
ist eine Standardmethode zum Abspielen von Sound, da sie Teil des ALSA-Systems ist und in den meisten Distributionen vorbündelt ist.Wenn Sie Linux verwenden, können Sie Ping in einem Skript verwenden,
google.com
um beispielsweise:quelle
fing
anstelle von in Betracht ziehenping
. Derping
cmd. Es kann ein bisschen dauern, bis es fehlschlägt, wenn es nicht erfolgreich ist. Derfing
Befehl schlägt dagegen innerhalb von 1 Sekunde fehl. Weitere Informationen finden Sie in meinem A zu diesen Fragen und Antworten: Wie leite ich die Ausgabe eines Befehls um? . Ich zeige sowohl mitping
als auchfing
.sleep 1
ist genug, um dies zu verhindern.