Internet-Verbindung Watchdog

Um einige Probleme mit unzuverlässigen 2G / 3G - Breitbandverbindungen zu umgehen, möchte ich einen automatischen Dienst einrichten, um entweder die Netzwerkschnittstelle selbst oder den gesamten Computer gewaltsam neu zu starten, sobald die Internetverbindung für eine bestimmte Anzahl von Stunden unterbrochen wurde. Dies würde automatisieren, was wir bisher manuell getan haben, um die Verbindungen wiederherzustellen.

Existiert ein solches Dienstprogramm für Windows 8 und wenn nicht, wie kann ich ein solches Skript schreiben aufgabe?


Für ein wenig Kontext haben wir eine Reihe von Computern an unzugänglichen Orten installiert, um Installationen eines getesteten Systems remote zu überwachen. Wie auch immer, dies sind einfache alte Windows 8-Netbooks, auf denen ein Protokollierungs - /Konfigurationsprogramm ausgeführt wird, und die normalerweise über 2G/3G-Dongles verbunden sind.

Leider sind diese Verbindungen aus irgendeinem Grund eher zwielichtig und fallen nach einigen Monaten aus, was einen manuellen Neustart erfordert. Der ISP war von wenig Hilfe, im Wesentlichen behauptet, dass ihre moderne Verbraucherausrüstung nicht für diese Art von Anwendung ausgelegt ist (fair genug), aber auch keine Alternativen vorschlagen kann.

Um fair zu sein, scheint es industrielle Modem/Router-Geräte auf dem Markt zu geben, obwohl der Größenunterschied in der Größenordnung und die Tatsache, dass die Systeme bereits installiert wurden, mich auf der Suche nach einfachen Lösungen gemacht haben.

Schließlich bin ich kein "Superuser" und das ist meine erste Frage oder aktivität jeglicher Art hier, also entschuldige ich mich, wenn dies Off-Topic ist oder eine Frage, die bereits beantwortet wurde.

Author: doynax, 2014-03-11

2 answers

Sie können ein Batch-Skript schreiben, das eine Website anpingt, die fast nie ausgefallen ist(Google!) und Sie können erkennen, ob Ihr Internet mit diesem Skript arbeitet. Sobald der Erkennungsteil fertig ist, ist es wirklich einfach, PC oder eine DFÜ-Verbindung von Batch-Datei neu zu starten. Hier ist mein Beispielskript:

@echo off
:begin
ping www.google.com | find "Reply" > nul
if errorlevel 1 goto :failed
goto :OK

:failed
echo Failed
choice /T 3600 /D Y /N
rasdial <dial-up connection name> <username> <password>
goto begin

:OK
echo OK
goto begin
 2
Author: tumchaaditya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-03-11 16:08:34

Für die Aufzeichnung hier ist das Skript, mit dem ich endete, nachdem ich an tumchaadityas Lösung herumgebastelt hatte.

Es muss noch in freier Wildbahn ausgelöst werden, scheint aber beim Testen zu funktionieren. Ich werde diesen Beitrag ändern, sobald es tut.

Theoretisch summiert sich der Bandbreitenverbrauch aus den kontinuierlichen Pings auf etwa 1,5 GB / Jahr, so dass ein periodischer Test vorzuziehen ist. Mein ISP behauptet jedoch, nur tatsächliche Nutzlastbytes zu zählen, und ich hoffe, dass die kontinuierliche Aktivität als keepalive.

@echo off
set INTERFACE="Local Area Connection"
set TIMEOUT=3600
set IP=8.8.8.8
set LOG="watchdog.log"

echo %DATE% %TIME%: Watchdog started >> %LOG%

:loop
rem First check the interface for an hour by pinging the Google DNS
rem and resetting the networking interface if it should fail.
ping -n %TIMEOUT% -w 1000 -l 0 %IP%
if %errorlevel% NEQ 1 goto :loop
echo %DATE% %TIME%: Connection failed. Restarting interface.. >> %LOG%
netsh interface set interface %INTERFACE% disable
netsh interface set interface %INTERFACE% enable

rem Give it another shot but restart the whole computer if it the communication should still fail
ping -n %TIMEOUT% -w 1000 -l 0 %IP%
if %errorlevel% NEQ 1 goto :loop
echo %DATE% %TIME%: Still no connection. Restarting computer.. >> %LOG%
shutdown /r /c "Internet wathchdog"

echo %DATE% %TIME%: Waiting for system to shut down >> %LOG%
choice /T %TIMEOUT% /D Y /N > NUL
echo %DATE% %TIME%: Gave up on the shut down attempt. Trying again.. >> %LOG%
goto :loop

Beachten Sie, dass für den Neustart der Netzwerkschnittstelle Administratorrechte erforderlich sind (seltsamerweise nicht für einen Neustart des Computers.)

Beachten Sie auch, dass der Exit-Status von ping anscheinend immer noch 0 für nicht responsive Systeme im selben Subnetz ist.

Ich war zu faul, um zu untersuchen, wie man einen richtigen Daemon einrichtet, also muss ich gestehen, das Skript auszuführen, indem ich im Autostart einen Link dazu erstelle und das Konto so einstelle, dass es sich automatisch anmeldet, markieren Sie den Link, der als Administrator ausgeführt werden soll, und deaktivieren Sie UAC.

 0
Author: doynax,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-03-19 14:43:03