我写了一个小脚本来检查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中显示它运行脚本但它似乎没有实际执行,从终端运行时脚本运行正常。
答案 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
,现在它可以正常工作了,谢谢大家。