如何在crontab上使用多行运行bash脚本

如何在crontab上使用多行运行bash脚本,cron,Cron,因为vpnc每23小时停止一次,所以我创建了一个.sh文件,每10分钟作为cron作业运行一次,它所做的就是停止vpnc进程并再次运行它 我已经通过chmod+x ping_vpnc.sh使其可执行,并且当我通过./ping_vpnc.sh从终端运行它时,它工作正常 我的文件看起来类似于: #!/bin/sh killall vpnc #just to make sure I don't create too many tunnels. vpnc default.conf #run vpnc

因为vpnc每23小时停止一次,所以我创建了一个.sh文件,每10分钟作为cron作业运行一次,它所做的就是停止vpnc进程并再次运行它

我已经通过chmod+x ping_vpnc.sh使其可执行,并且当我通过./ping_vpnc.sh从终端运行它时,它工作正常

我的文件看起来类似于:

#!/bin/sh

killall vpnc #just to make sure I don't create too many tunnels.
vpnc default.conf  #run vpnc connect file.
我的crontab文件:

*/10 * * * * /home/username/ping_vpnc.sh
脚本的问题是它没有完全运行,因此它只是停止进程而不重新运行它

我以root用户身份运行脚本,因此我认为这不是一个特权问题


你知道为什么会这样吗?我将不胜感激。

如评论所示,请更改

*/10 * * * * /home/username/ping_vpnc.sh
为了

也就是说,告诉crontab哪个二进制文件必须执行脚本


为了将来的参考,让我指出你在Ask Ubuntu中发现的问题:。它提供了有关该主题的全面信息。

如评论所示,更改

*/10 * * * * /home/username/ping_vpnc.sh
为了

也就是说,告诉crontab哪个二进制文件必须执行脚本


为了将来的参考,让我指出你在Ask Ubuntu中发现的问题:。它提供了有关该主题的全面信息。

我对vpnc不是非常熟悉,但是否旧流程需要一点时间才能完全消亡,而新流程注意到旧流程仍然部分存在,因此拒绝启动?如果是这样的话,可能会在两者之间加一个sleep 1或其他东西……我试过了,但仍然是同一个问题,而且我手动运行bash脚本。/ping_vpnc.sh它按预期工作!但不在crontab上:更改***/家对于***/bin/sh/home…,您需要指示执行脚本的二进制文件。我做了更改,我必须等待几分钟,以便脚本可以在crontab上运行。你的解决方案似乎是正确的,我在这里发现了类似的东西,但直到你提出解决方案,我才明白。http://askubuntu.com/questions/117978/script-doesnt-run-via-crontab-but-works-fine-standalone/277869277869 谢谢!!!请把你的建议作为解决方案,它工作完美!!!非常感谢你!!!我对vpnc不是非常熟悉,但是否旧流程需要一点时间才能完全消亡,而新流程注意到旧流程仍然部分存在,因此拒绝启动?如果是这样的话,可能会在两者之间加一个sleep 1或其他东西……我试过了,但仍然是同一个问题,而且我手动运行bash脚本。/ping_vpnc.sh它按预期工作!但不在crontab上:更改***/家对于***/bin/sh/home…,您需要指示执行脚本的二进制文件。我做了更改,我必须等待几分钟,以便脚本可以在crontab上运行。你的解决方案似乎是正确的,我在这里发现了类似的东西,但直到你提出解决方案,我才明白。http://askubuntu.com/questions/117978/script-doesnt-run-via-crontab-but-works-fine-standalone/277869277869 谢谢!!!请把你的建议作为解决方案,它工作完美!!!非常感谢你!!!非常感谢您抽出时间来整理这些内容!!我非常感谢!!非常感谢您抽出时间来整理这些内容!!我非常感谢!!