Crontab没有运行bash脚本

时间:2014-12-17 15:06:12

标签: linux bash unix ubuntu cron

我写了一个小脚本来检查openvpn是否正在运行,如果不是则启动它。

这是我正在运行的脚本

#!/bin/bash **-x**

ps auxw | grep openvpn | grep -v grep > /dev/null

if [ $? != 0 ]
then
    /etc/init.d/openvpn start > /dev/null
    log="/root/ServerRestart.log"
    echo "The Openvpn Server was restarted at\n" > $log
    date  >> $log
fi

这是crontab:

* * * * * /root/vpnmonitor.sh

它在syslog中显示它运行脚本但它似乎没有实际执行,从终端运行时脚本运行正常。

2 个答案:

答案 0 :(得分:1)

openvpn服务不会以严格路径开始。 尝试加入“vpnmonitor.sh”:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

像:

#!/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

logger "VPN restarted from cron"

/etc/init.d/openvpn restart vpn-servername

答案 1 :(得分:0)

我在/ etc / crontab中创建了一个新的cronjob,而不是使用crontab -e,现在它可以正常工作了,谢谢大家。