Я пытаюсь проверить соединения для списка серверов. Я хочу просмотреть список, проверить, работает ли соединение, и если да, сделать что-нибудь, если нет, вывести сообщение о проблеме.
Моя проблема:
скрипт останавливается на первом узле, не отображая $ ?.
Итак, что не так с моим циклом for?
Эти переменные включены в конфигурационный файл:
$nodes
- это список IP-адресов серверов, например 1.1.1.1,2.2.2.2,10.10.10.10
$user
это одна строка
for node in $(echo $nodes | sed "s/,/ /g")
do
echo "Checking Node: $node"
ssh -q -o ConnectTimeout=3 $user@$node echo ok
echo $?
if [[ $? != 0 ]]
then
echo "Problem in logging into $node"
else
# do some stuff here
fi
done
РЕДАКТИРОВАТЬ # 1:
for node in $(echo $nodes | sed "s/,/ /g")
do
echo "Checking Node: $node"
ssh -q -t -o ConnectTimeout=3 $user@$node "echo ok"
retcode=$?
echo $retcode
if [[ "$retcode" -ne 0 ]]
then
echo "Problem in logging into $node"
else
echo "OK"
fi
done