【发布时间】:2019-06-04 00:34:41
【问题描述】:
我正在尝试检查服务器列表的连接。我想遍历列表,检查连接是否有效,如果是,做一些事情,如果不是,回显问题消息。
我的问题是:
脚本在第一个节点处停止而不回显 $?。
那么,我的 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
【问题讨论】: