Ping Error = Exit

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Quickly1971
Beiträge: 110
Registriert: 08.05.2009 15:26:32

Ping Error = Exit

Beitrag von Quickly1971 » 27.01.2018 13:58:50

Hallo.
Vermutlich eine banale Frage. Habe jedoch gerade erst angefangen mir mein erstes eigenes Script zu basteln.

Mein Script lädt einige Dateien von einem Server. Dieses Script wird jede Stunde ausgeführt. Soweit klappt ja alles.
Wenn der Rechner nicht online ist, dann soll das gesamte Script abbrechen.

Also denke ich... -> Ping auf XYZ nicht erfolgreich, dann Exit

Ich weiß gerade nicht wonach ich bei Onkel Google suchen soll. Mir fehlen die generellen Ansatzpunkte/Suchbegriffe, also das Wissen.
Kann mir jemand auf die Sprünge helfen, bitte.

Danke, Lars
Der Mensch hat drei Wege, klug zu werden.
Erstens durch Nachdenken: Das ist der edelste.
Zweitens durch Nachahmen: Das ist der leichteste.
Drittens durch Erfahrung: Das ist der bitterste.

breakthewall
Beiträge: 507
Registriert: 30.12.2016 23:48:51

Re: Ping Error = Exit

Beitrag von breakthewall » 27.01.2018 14:32:31

Das könnte man beispielsweise so lösen:

Code: Alles auswählen

if ping -c 1 IP
    then
          # Lade Dateien vom Server
    else
          exit 1
fi
Alternativ könnte man anstatt von ping auch netcat nutzen, wenn man zusätzlich genauer prüfen muss, ob ein bestimmter Port oder Dienst auf dem Server aktiv ist. Richtet sich eben nach dem Bedarf, und wie jeweils Daten übertragen werden.

Quickly1971
Beiträge: 110
Registriert: 08.05.2009 15:26:32

Re: Ping Error = Exit

Beitrag von Quickly1971 » 27.01.2018 17:21:42

Genial. Das klappt. Vielen Dank. :hail:
Der Mensch hat drei Wege, klug zu werden.
Erstens durch Nachdenken: Das ist der edelste.
Zweitens durch Nachahmen: Das ist der leichteste.
Drittens durch Erfahrung: Das ist der bitterste.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Ping Error = Exit

Beitrag von Cae » 28.01.2018 00:00:25

Man koennte auch schlicht auswerten, ob das tatsaechliche Herunterladen geklappt hat, womit man auch beliebige weitere Fehler erschlaegt. Z.B.

Code: Alles auswählen

if wget -O tmp-file -o log http://example.org/some-file; then
	mv tmp-file some-file
else
	echo >&2 "wget failed with code $?"
	exit 1
fi
Das kommt damit klar, wenn der Download mittendrin kaputt geht oder der Testping zwar tut, aber der Webserver selbst nicht laeuft. Im log steht dann der wirkliche Fehler.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Antworten