将多个服务器时间与本地时间进行比较
Compare multiple server times to localtime
我希望将 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
尝试这样的事情:
#!/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
)。
我希望将 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
尝试这样的事情:
#!/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
)。