Holen Sie sich die Verbindungsantwort in die KSH-Skriptvariable

291
Stan K

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

0 Antworten auf die Frage