Я пишу сценарий 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: тайм-аут соединения "), чтобы я мог выполнить эхо или дальнейшую обработку.