我希望你能帮助我给我一些关于我的代码的想法,因为我不知道如果脚本在if条件下20分钟后进入两次,我该如何进行验证。
rc=0
while [ $rc -ne 1 ]; do
do
ping 192.168.1.89
if [ "$?" -ne "0" ]; then
sleep 600 # this are 10 minutes
# here i need to validate if this script enters two times followed in 20 minutes
continue
else
continue
fi
done
欢迎任何帮助,谢谢
答案 0 :(得分:2)
看起来您正在监视IP是否存在连接丢失,并且如果两次间隔10分钟失败,您希望采取措施。要实现这一目标,您只需使用计数器即可。
failures=0
rc=0
while [ $rc -ne 1 ]; do
do
ping 192.168.1.89
if [ $? -ne 0 ]; then
((failures++))
echo Ping failures: $failures
if (( failures < 2 )); then
sleep 600
else
echo Max failures hit
fi
else
failures=0
fi
done
您可能需要修改ping命令行以发送最大数量的ping(例如,使用-c 3
发送最多3个ping)。您可能希望将ping输出重定向到/dev/null
。