我写了一个小脚本来检查 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
它在系统日志中显示它运行脚本但它似乎并没有真正执行,脚本在从终端运行时工作正常。
最佳答案
如果没有正确的路径,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
关于linux - Cronjob 没有运行 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27528579/