我正在尝试让脚本在工作日的工作时间内每小时运行两次,并且我的 cron 设置中有以下内容:
\# m h dom mon dow command
8,48 8-17 * * 1-5 python ~/documents/scripts/script.py
但是,什么都没执行。我尝试过各种方法,但似乎什么都没发生。手动运行脚本可以正常工作。
我唯一的其他 cron 脚本像时钟一样运行:
45 5 * * * python ~/documents/scripts/rdiff.py
这个程序每天早上 05:45 将我的系统备份到外部磁盘。
我错过了什么?
答案1
您的 crontab 时间规范是正确的,我刚刚用这个验证了它:
1,41 0-17 * * 1-5 /bin/echo 'running'
由于您的第二个 crontab 条目运行良好,因此python
可以在您的默认环境中找到(通常使用可执行文件的完整路径更安全)。
由于你的脚本本身在终端中运行良好,但在从 cron 启动时却不能,我只能得出这样的结论:问题在于环境在你的常规交互的会议和非交互式cron 提供的一个。
类似这样的答案(在多个 SE 网站上有很多)可以帮助您进一步调查:https://serverfault.com/questions/337631/crontab-execution-doesnt-have-the-same-environment-variables-as-executing-user