如何让cron在工作时间每小时执行一次任务?

如何让cron在工作时间每小时执行一次任务?

我正在尝试让脚本在工作日的工作时间内每小时运行两次,并且我的 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

相关内容