ubuntuusers.de

Wenn Server antwortet fortfahren(ping)

Status: Gelöst | Ubuntu-Version: Ubuntu 20.04 (Focal Fossa)
Antworten |

dsm4

Anmeldungsdatum:
9. April 2021

Beiträge: 20

Hallo, ich habe eine frage gibt es einen ping befehl der wenn er eine antwort von einem Server bekommt den Befehl beendet? Mein Vorhaben: Hab ein Backup script der mit einem Wake on lan befehl den Server hochfährt und dann ein backup macht. Nun möchte ich das er den Server anpingt und wenn er eine Antwort bekommt weitermacht(also mit dem script(ist ein bash script)). Ist das möglich?

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11269

Wohnort: München

Man könnte ping in einer Schleife aufrufen, die abbricht, wenn es eine Antwort kommt:

1
2
3
4
5
6
7
8
SERVER="example.tld"
while :
do
    ping -c 1 -q "$SERVER" && break
    sleep 1
done

echo "ready to run the backup"

dsm4

(Themenstarter)

Anmeldungsdatum:
9. April 2021

Beiträge: 20

Danke hat funktioniert

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13219

seahawk1986 schrieb:

Man könnte ping in einer Schleife aufrufen, die abbricht, wenn es eine Antwort kommt:

Das lässt sich noch eleganter machen:

1
2
3
4
5
6
7
8
SERVER="example.tld"

until ping -c 1 -q "$SERVER"
do
  sleep 1
done

echo "ready to run the backup"

Man könnte auch nc benutzen um auf den Port des Servers zu verbinden, den man braucht.

1
2
3
4
5
6
7
8
9
SERVER="example.tld"
PORT=22

until nc -d "$SERVER" $PORT
do
  :
done

echo "ready to run the backup"

Das ist sogar noch etwas robuster, weil man dann weiß, dass der Dienst lebt, den man braucht. Die Pings zeigen ja nur an, dass der Rechner am Netzwerk hängt und eine IP usw. hat.

Antworten |