Я пытаюсь автоматизировать несколько проверок, которые мне нужно выполнить на нескольких серверах, когда они построены.Мне нужно ssh к серверам, проверить свободное место и проверить, есть ли подключение p4.Я вывожу результаты в журнал, и позже он анализируется.Мой код, приведенный ниже, работает, но если соединение p4 не удается, я не получаю никакого реального вывода, он просто убивает ssh и переходит на следующий сервер.Есть ли способ установить ограничение по времени только для части, которая проверяет наличие соединения p4, и если этот предел достигнут, я могу вывести «ошибку p4» в журнал?Итак, было бы похоже на то, что у меня есть таймер только на этом фрагменте команд, запущенных в ssh:
echo \\\"<CONN>\\\" export P4PORT=${p4port}; /usr/local/bin/p4 info | grep Server | grep address; \\\"</CONN>\\\";"
Вот пример того, что у меня в данный момент:
servers="server1 server2 server3"
dated=`date +%Y%m%d`
log="p4connectivity_${dated}.txt"
echo "Script starting at `date` > $log
for server in $servers
do
echo $server >> $log
ssh -o ConnectTimeout=60 ${user}@${server}.${fqdn} "echo \\\"<BEGIN>\\\"; date -u +%m%d%Y_%H%M%S_%Z; echo \\\"</BEGIN>\\\"; echo \\\"<FREE_SPACE>\\\"; df -k | grep app; echo \\\"</FREE_SPACE>\\\"; echo \\\"<CONN>\\\" export P4PORT=${p4port}; /usr/local/bin/p4 info | grep Server | grep address; \\\"</CONN>\\\";" >> $log 2>&1
done
echo "Script is finished"
Я думаю, я мог бы сделать что-то вроде: