我想每天 10:25(具体时间并不重要)在我的 Raspberry Pi(运行 Raspbian Jessie)上运行一个脚本。
对于该行:25 10 * * * /home/pi/test.sh
它没有给出任何结果,没有输出,也没有活动日志。
我尝试了一下* * * * * /home/pi/test.sh
,奇迹发生了!它工作得很好,CMD (/home/pi/test.sh)
在 cron 日志中生成,并创建所需的输出文件。
我用于测试目的的脚本:
#!/bin/bash
echo `date` > /home/pi/test.txt
有人知道为什么 cron 不运行脚本吗?
答案1
为了简化起见,我将工作列为:
25 10 * * * date > /home/pi/test.txt
该活动将于上午 10:25 运行。如果此时没有运行,请检查时区/etc/default/cron
并根据需要进行更改。更改后您将需要重新启动该服务service cron restart
。
答案2
来自 crontab 联机帮助页
当分钟、小时和月份字段与当前时间匹配,并且两个日期字段(月份中的某一天或星期几)中至少有一个与当前时间匹配时,由 cron(8) 执行命令
您需要拥有其中一个日期字段。如果您希望它在每天 10:25 运行,只需使用
25 10 * * 0-6 /home/pi/test.sh
编辑:这实际上是不正确的,因为所有 * 都将 crontab 标记为每分钟执行一次。我们发现这是系统时间问题。仔细检查您的系统时间。 cron 守护进程在 UTC 之外运行。由于当您将所有字段设置为 * 时脚本有效,因此我们知道实际逻辑正在工作。