如何使用inittab文件执行Linux shell脚本

时间:2017-04-06 19:54:15

标签: linux bash

我创建了一个包含以下内容的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

1 个答案:

答案 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