Holen Sie sich die Verbindungsantwort in die KSH-Skriptvariable
Ich schreibe ein ksh-Skript, das eine Liste von Servern durchläuft, die Kernel-Version überprüft und diese auf dem Bildschirm ausgibt.
Dies ist mein Code bisher:
#!/usr/bin/ksh set -x for ssh_host in $(cat srvlist) do kernel=`ssh $ssh_host "uname -a | cut -d' ' -f 1"` echo "This is the kernel result " $kernel " for $ssh_host" done
Dies funktioniert großartig, aber wenn der Server nicht erreichbar ist oder der Hostname nicht bekannt ist, ist die Kernelvariable leer.
Beim Ausführen des Skripts sehe ich die Fehler "Host noch Dienst bereitgestellt" oder "Verbindungszeitüberschreitung", aber ich möchte dies hoffentlich in der Kernelvariablen abfangen, sodass ich weiter entscheiden kann, was zu tun ist.
Um ehrlich zu sein, habe ich erwartet, dass die ssh-Ausgabe an die Kernel-Variable gesendet wird, auch wenn der Befehl erfolgreich ausgeführt wurde oder nicht.
Wenn die Verbindung nicht erfolgreich war, möchte ich, dass die Kernel-Variable den exakten ssh-Ausgabefehler enthält (z. B. ssh: Verbindung zu Host HostName-Port 22: Verbindung ist abgelaufen "), damit ich das Echo oder die weitere Verarbeitung durchführen kann.
0 Antworten auf die Frage
Verwandte Probleme
-
10
Wie richte ich SSH ein, damit ich mein Passwort nicht eingeben muss?
-
3
Wie kann ich ssh verwenden, um einen Befehl auf einem Remote-Unix-Computer auszuführen und zu beende...
-
8
Rette mich vor dem Kauderwelsch
-
4
Wie kann man HOME- oder END-Tasten in mc unter OS X (ssh) verwenden?
-
1
ksh entspricht perl $! Fehlerursache
-
3
/ usr / bin / reset deaktiviert den Rückschritt
-
4
Erstellt einen Schlüssel mit SSH-Keygen. Der Ordner wird nicht mit FileZilla angezeigt
-
9
Kann ich von Telnet (Kitt) aus eine Datei auf meinen Computer herunterladen?
-
4
Wie verbinde ich mich mit einem SSH-Server von Ubuntu aus?
-
1
OpenSSH-Public-Key-Struktur