我希望将x服务器时间量与控制本地时间(脚本运行时的当前时间)进行比较,以检查是否有任何服务器与当前时间不同步。如果服务器落后几秒钟,则抛出错误消息。
这是我到目前为止所拥有的
#!/bin/sh
servers="server1.... server2...."
now="date +%s"
for server in $servers
do
ssh -l root ${server} "date +%s"
if [ $? -eq "$now" ] ; then
echo $server - IN SYNC
else
echo $server - NOT IN SYNC
fi
done
答案 0 :(得分:1)
尝试这样的事情:
#!/bin/bash
servers="server1.... server2...."
seconds="3" # value for servers to differ (in seconds)
for server in $servers
do
difference=$(echo $(ssh -l root ${server} "( date +%s )") "-" $(date +%s) | bc)
if [[ ${difference#-} -le ${seconds} ]] ; then
echo $server - IN SYNC
else
echo $server - NOT IN SYNC
fi
done
我已经在伪代码中给出了脚本,就像你给你的那样(我已经切换到bash
)。