Как написать сценарий теста для подключения Perforce на нескольких серверах - PullRequest
0 голосов
/ 28 февраля 2012

Я пытаюсь автоматизировать несколько проверок, которые мне нужно выполнить на нескольких серверах, когда они построены.Мне нужно 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"

Я думаю, я мог бы сделать что-то вроде:

1 Ответ

0 голосов
/ 28 февраля 2012

Вы можете попробовать команду p4 ping. Я не уверен, но он может иметь характеристики ошибок, отличные от p4 info.

Еще лучше, почему бы вам просто не выдать p4 info с локальной машины, вместо того, чтобы делать это через ssh?

...