Получите ответ соединения в переменную скрипта KSH

187
Stan K

Я пишу сценарий ksh, который будет перебирать список серверов, проверять версию ядра и выводить это на экран.

Это мой код до сих пор:

#!/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 

Это прекрасно работает, но если сервер недоступен или имя хоста неизвестно, переменная ядра будет пустой.

При запуске скрипта я вижу ошибки «host or service условии» или «timedout timed», но я хотел бы это отследить, надеюсь, внутри переменной ядра, чтобы я мог далее решить, что делать.

Честно говоря, я ожидал, что вывод ssh будет отправлен в переменную ядра, даже если команда была успешно выполнена или нет.

В итоге, если соединение было неудачным, я хочу, чтобы переменная ядра была точной ошибкой вывода ssh (например, ssh: соединение с хостом HostName, порт 22: тайм-аут соединения "), чтобы я мог выполнить эхо или дальнейшую обработку.

0

0 ответов на вопрос