Du könntest mit ping prüfen ob eine IP-Adresse erreichbar ist
versucht einmal die IP-Adresse anzupingen, wartet maximal 3 Sekunden auf eine Antwort und liefert einen Rückgabewert ≠0, falls sie nicht erreichbar ist.
Ich mache etwas ähnliches mit ssh selbst, weil ssh auch prüft ob der Server der ist, für den man ihn hält bzw. für den er sich ausgibt. Das ist aber nur bei Authentifizierung mittels Schlüssel praktikabel, weil man sonst im Laufe des Skripts eventuell 3 Mal das ssh-Passwort eingeben muss.
Für den Rückgabewert von ssh gilt im wesentlichen dasselbe, wenn man ssh nur true ausführen lässt:
(Wenn man sich direkt erfolgreich interaktiv anmeldet, wird von ssh der Rückgabewert der Shell zurückgegeben und dadurch fehlt eine verlässliche Information ob die Verbindung über ssh funktioniert hat.)
Auf den Rückgabewert kann man mit if wie gewünscht reagieren
Code: Alles auswählen
if ssh IP-Adresse true ; then
ssh IP-Adresse
exit 0
fi
würde zum Beispiel prüfen ob ssh sich mit der IP-Adresse verbinden kann, falls ja das tun und sich danach beenden.
Das ganze ließe sich auch kürzer schreibe und je nach Zweck auch eleganter, aber vielleicht ist das einmal ein gut verständlicher Anfang?