Я пишу сценарий 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