crontab 脚本执行

crontab 脚本执行

我正在尝试进行通讯丢失自动重启,并且刚刚在网上找到了这个脚本(祝福做这件事的人)。脚本是

ping -c4 www.site.com > /dev/null

if [ $? != 0 ] 
then
  sudo /sbin/shutdown -r now
fi

所以这个脚本工作得很好。我想做的是添加另一个具有相同功能的脚本,但我不想对站点执行 ping 操作,而是想添加另一个脚本,以便它可以对服务器执行 ping 操作,所以我所做的是相同的脚本,但只是更改它的 ping 内容

ping -c4 192.168.1.5 > /dev/null

if [ $? != 0 ] 
then
  sudo /sbin/shutdown -r now
fi

我存储此脚本,/usr/local/bin/因此第一个脚本的通信丢失的文件名是/usr/local/bin/commsloss.sh,然后第二个脚本的文件名是/usr/local/bin/serverloss.sh

我已经添加了这两行crontab -e

*/5 * * * * /usr/bin/sudo -H /usr/local/bin/commsloss.sh >> /dev/null 2>&1

*/10 * * * * /usr/bin/sudo -H /usr/local/bin/serverloss.sh >> /dev/null 2>&1

然后我尝试关闭服务器以查看它是否会重新启动,但它不起作用。

有什么建议么?

我想知道这是否可行,或者这是否是正确的语法,以便我可以只有一个脚本而不是两个?

ping -c4 www.site.com > /dev/null || ping -c4 192.168.1.5 > /dev/null

答案1

我不确定为什么您当前的服务器脚本不起作用,但这应该允许您使用or运算符:

#!/bin/bash
ping -q -c4 www.site.com > /dev/null
siteup=$?
ping -q -c4 192.168.1.5 > /dev/null
ipup=$?
if [[ $siteup != "0" || $ipup != "0" ]]; then
  sudo /sbin/shutdown -r now
else
  :
fi

相关内容