80851
21.07.2009, aktualisiert am 17.08.2009
7735
8
0
IP pingen ?
Hallo zusammen,
leider finde ich keine Lösung für mein Problem.
Mein Problem ist das ich keine Ahnung von Batch-Dateien habe und gerne Grundlagen oder ein schönes wiki gefunden hätte.
So bin ich bei euch gelandet, für Tipps oder Hinweise die mich zur Lösung führen könnten wäre ich sehr dankbar.
Problem,
Ich möchte eine Batch als Dienst im Hintergrund alle 10 Minuten lassen.
Die Batch soll folgendes tun,
Ich möchte einen Solar-Wechselrichter anpingen und bei Bedarf den eigenen Rechner Neustarten um ein Ausleseprogramm neustarten zu können.
Ping => Ziel-IP
IF Ziel-IP erreichbar UND Merker "nicht gesetzt"
Goto ENDE
Das Skript soll nichts tuen wenn erreichbar
ELSE
{
IF Merker "nicht gesetzt"
setze Merker
ELSE Merker "gesetzt" UND Ziel-IP erreichbar
Starte den Rechner neu
Nur wenn der Merker gesetzt wurde und die IP wieder erreichbar soll der Rechner wieder gestartet werden
}
So stell ich mir die Funktionsweiße vor, könnt ihr mir helfen bzw. Tipps und/oder Denkanstösse geben ?
Vorab vielen Dank !
leider finde ich keine Lösung für mein Problem.
Mein Problem ist das ich keine Ahnung von Batch-Dateien habe und gerne Grundlagen oder ein schönes wiki gefunden hätte.
So bin ich bei euch gelandet, für Tipps oder Hinweise die mich zur Lösung führen könnten wäre ich sehr dankbar.
Problem,
Ich möchte eine Batch als Dienst im Hintergrund alle 10 Minuten lassen.
Die Batch soll folgendes tun,
Ich möchte einen Solar-Wechselrichter anpingen und bei Bedarf den eigenen Rechner Neustarten um ein Ausleseprogramm neustarten zu können.
Ping => Ziel-IP
IF Ziel-IP erreichbar UND Merker "nicht gesetzt"
Goto ENDE
Das Skript soll nichts tuen wenn erreichbar
ELSE
{
IF Merker "nicht gesetzt"
setze Merker
ELSE Merker "gesetzt" UND Ziel-IP erreichbar
Starte den Rechner neu
Nur wenn der Merker gesetzt wurde und die IP wieder erreichbar soll der Rechner wieder gestartet werden
}
So stell ich mir die Funktionsweiße vor, könnt ihr mir helfen bzw. Tipps und/oder Denkanstösse geben ?
Vorab vielen Dank !
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 121001
Url: https://administrator.de/contentid/121001
Ausgedruckt am: 05.11.2024 um 13:11 Uhr
8 Kommentare
Neuester Kommentar
Hallo mike,
ich darf also zusammenfassen:
Alle x Minuten Ping....
sollte ein Durchlauf nich erfolgreich gewesen sein, aber einer der folgenden schon sollt der PC neugestartet werden.
Was passiert wenn der Ping gar nicht mehr erfolgreich sein sollte?
Warum willst du den ganzen PC neustarten und nicht nur dieses Ausleseprogramm?
Ach ja, sprechen wir von einem Windows oder Linux Rechner?
MfG Sebastian
ich darf also zusammenfassen:
Alle x Minuten Ping....
sollte ein Durchlauf nich erfolgreich gewesen sein, aber einer der folgenden schon sollt der PC neugestartet werden.
Was passiert wenn der Ping gar nicht mehr erfolgreich sein sollte?
Warum willst du den ganzen PC neustarten und nicht nur dieses Ausleseprogramm?
Ach ja, sprechen wir von einem Windows oder Linux Rechner?
MfG Sebastian
Servus,
so pi * daumen wird es ungefähr so laufen:
wobei
Daraus kannst du dir sicherlich noch die ein oder andere Verbesserung selber zusammenstricken - jeder der Befehle hat einen Parameter /? - der die die "echten" parameter zeigt.
Gruß
so pi * daumen wird es ungefähr so laufen:
:start
ping 127.0.0.1 | find "TTL" && goto start || taskkill /F /IM "Notepad.exe" && goto offline
:offline
ping 127.0.0.1 | find "TTL" && start "Analyse" Notepad.exe || goto start
goto start
wobei
rem sprungmarke :start
rem ping den eigenen Rechner (zum Test - dort die IP des Ziels eintragen) | finde ob es antwortet und gehe zu start || setze den Marker bzw. kicke das Auswerteprogramm um so den Marker zu setzen (oder nicht noch einen Marker nutzen zu müssen) " && gehe zu offline (das erstwieder verlassen wird - wenn status online)
:offline
rem ping den eigenen Rechner (zum Test - dort die IP des Ziels eintragen) | finde ob es antwortet und && start "überschrift" auswertungsprogramm.exe || gehe zum start
rem damit die "Schleife" auch wieder weiter geht wenn nach offline wieder online ist - gehe zum start
Daraus kannst du dir sicherlich noch die ein oder andere Verbesserung selber zusammenstricken - jeder der Befehle hat einen Parameter /? - der die die "echten" parameter zeigt.
Gruß
Also ich hoffe ich werde von den Batch Gurus nicht gleich verprügelt, aber hier meine (verspätete) Lösung
Ist nur so zusammengebastelt und ich bin natürlich über jede Verbesserung dankbar.
edit
OK , 6 Zeilen im Vergleich zu 35 würd ich schon als Verbessereung Bezeichnen
Das wait ist natürlich nur ne Bastellösung(hier ca 60 Sekunden Wartezeit) Du kannst dir ja die wait.exe laden und das ganze damit lösen.
Grundsätzlich sollte das ganze jedoch funktionieren
MfG Sebastian
Ist nur so zusammengebastelt und ich bin natürlich über jede Verbesserung dankbar.
edit
OK , 6 Zeilen im Vergleich zu 35 würd ich schon als Verbessereung Bezeichnen
@echo off
set /a merker = 0
:test
set /a ping_success = 0
ping -n 1 "IP des WS"
set /a ping_success = %ERRORLEVEL% + %merker%
if %ping_success% == 0 (goto wait)
:: Merker=1 und Ziel nicht erreichbar
if %ping_success% == 2 (goto wait)
:: Wenn die oberen Bedingungen nicht erfüllt werden...
if %merker% == 0 (goto set_merker)
if %merker% == 1 (goto restart)
goto test
:set_merker
set /a merker = 1
goto wait
:wait
ping -n 60 localhost
goto test
::Anwendung beenden und neu starten
:restart
tskill "programname aus dem taskmanager ohne .EXE"
start C:\Pfad_zum_Programm\programm.exe
set /a merker = 0
goto test
Das wait ist natürlich nur ne Bastellösung(hier ca 60 Sekunden Wartezeit) Du kannst dir ja die wait.exe laden und das ganze damit lösen.
Grundsätzlich sollte das ganze jedoch funktionieren
MfG Sebastian
Servus,
ändere die erste Variante bitte nur - indem du die zu pingende IP und das zu beendende/zu startende Programm editierst.
Du hast da noch ein wenig anderes verändert - und deswegen mags nicht ;-(
Die Ausgabe:
28. FEHLER: Ungültige Syntax. /FI, /PID oder /IM wurde nicht angegeben.
29. Geben Sie "TASKKILL.EXE/-?" ein, um die Syntax anzuzeigen.
kommt von
Könnt ihr mir nochmal den letzten und entscheidenden Hinweis geben ???
ändere die erste Variante bitte nur - indem du die zu pingende IP und das zu beendende/zu startende Programm editierst.
Du hast da noch ein wenig anderes verändert - und deswegen mags nicht ;-(
:start
ping 192.168.88.128 | find "TTL" && goto start || taskkill /F /IM "javaw.exe" && goto offline
:offline
ping 192.168.88.128 | find "TTL" && start "Analyse" "C:\Programme\solarmax\maxtalk_179\MaxTalk 1.7.9.exe" || goto start
goto start
Die Ausgabe:
28. FEHLER: Ungültige Syntax. /FI, /PID oder /IM wurde nicht angegeben.
29. Geben Sie "TASKKILL.EXE/-?" ein, um die Syntax anzuzeigen.
kommt von
Gruß