我创建了一个包含以下内容的shell脚本。
#!/bin/bash
TMP_FILE=/tmp/inet_up
no_inet_action(){
reboot
}
HOUR="$(date +'%H')"
if [ $HOUR -le 22 -a $HOUR -ge 9 ]; then
if ping -c5 192.168.7.100; then
echo "Internet OK">$TMP_FILE
else
echo "No Internet">$TMP_FILE
no_inet_action
fi
fi
它会在09:00到22:00期间ping一个IP地址,如果没有互联网连接,它会在文件中写一行并重启设备。我在inittab中添加以下行,并期望它每隔5分钟运行一次。我在/tmp
文件夹中看不到该文件。该脚本是可执行的。执行它的正确方法是什么?我看到一些博客建议将其置于/etc/init.d
之下;这是对的吗?
inittab
位于/etc/
文件夹中。
::respawn:/sbin/delayexec 600 /etc/check_inet.sh
答案 0 :(得分:1)
搜索并尝试了几个小时后,找到了解决方案。 如果我在inittab文件中放入以下内容,它对我来说就可以了。因此我不需要使用评论专家提到的crontab(我不是Linux专家,没有时间调查细节,只需要完成我的任务)。希望这可能对inittab的其他部分内容有所帮助。
::respawn:/sbin/delayexec 300 /bin/sh /etc/check_inet.sh
以下是删除echo命令后我使用的最终代码:
#!/bin/bash
no_inet_action(){
reboot
}
HOUR="$(date +'%H')"
if [ $HOUR -le 22 -a $HOUR -ge 9 ]; then
if ping -c5 192.168.7.100; then
else
no_inet_action
fi
fi