摘要
我有类似的问题cron.daily 作业未运行,但那里的解决方案并不适用于我。
我已经设置了一个脚本,该脚本应在 期间每天运行cron.daily
。我将脚本放在 中/etc/cron.daily
。当计算机整夜开机时,脚本会正常执行。但是,根据我对 的理解anacron
,如果我关闭计算机并重新打开它(即使在cron.daily
正常运行时间之后),anacron
应该会运行未在标准时间内运行的脚本。但是,出于某种原因,anacron
并非每天都触发,并且它在某些日子有效,而在其他日子则无效。
细节
从社区文档来看,它anacron
应该在每天启动时运行
因此,anacron 似乎在每次启动、唤醒、插入插件时以及每天早上 7:30 运行。查看相应的变更日志和软件包数据库,似乎此设置直接来自 Debian,并且至少自 2009 年以来从未更改过。
但事实并非如此。
我通过在计划时间anacron
(早上 7:30)之后打开笔记本电脑进行测试,但它不起作用。起初,我以为是跳过了几天,但我不知道在哪里搜索该配置,因为我没有更改它的行为。
如果您需要任何日志请告诉我,我可以提供。
日志
/etc/log/syslog
$ cat /var/log/syslog | grep cron
Mar 10 09:40:36 computer anacron[798]: Job `cron.daily' terminated
Mar 10 09:40:36 computer anacron[798]: Normal exit (1 job run)
Mar 10 10:17:01 computer CRON[26842]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Mar 10 11:17:01 computer CRON[27296]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Mar 10 12:17:01 computer CRON[28337]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Mar 10 13:14:01 computer CRON[28761]: (root) CMD ( test -x /etc/cron.daily/popularity-contest && /etc/cron.daily/popularity-contest --crond)
Mar 10 13:17:02 computer CRON[28779]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Mar 10 14:00:48 computer systemd[1]: Started Run anacron jobs at resume.
Mar 10 14:17:01 computer CRON[30881]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Mar 10 15:17:01 computer CRON[31557]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Mar 10 17:19:19 computer systemd[1]: Started Run anacron jobs at resume.
Mar 10 18:17:01 computer CRON[2100]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Mar 10 19:17:01 computer CRON[2745]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Mar 10 20:17:01 computer CRON[3475]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Mar 13 09:33:19 computer cron[918]: (CRON) INFO (pidfile fd = 3)
Mar 13 09:33:19 computer cron[918]: (CRON) INFO (Running @reboot jobs)
Mar 13 10:17:01 computer CRON[9045]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Mar 13 11:17:01 computer CRON[13534]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Mar 13 12:17:01 computer CRON[20925]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Mar 13 13:14:01 computer CRON[21354]: (root) CMD ( test -x /etc/cron.daily/popularity-contest && /etc/cron.daily/popularity-contest --crond)
Mar 13 13:17:01 computer CRON[21377]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Mar 13 14:17:01 computer CRON[22770]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Mar 13 15:17:01 computer CRON[24406]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
答案1
附录:我可能不得不承认一些错误。看来,即使删除了不要在使用电池时执行的命令 cron.daily,这台笔记本电脑仍然无法可靠地执行。搜索恢复。
我注意到 anacron 在我的好笔记本电脑上无法运行日常作业,但在两台旧笔记本电脑上却运行可靠。经过几个月的摸索,我偶然发现了答案。这仅适用于笔记本电脑。
/etc/cron.daily 中有一个名为“app-compat”的文件。该文件末尾有以下几行:
# ensure we don't do this on battery
check_power || exit 0
我注释掉了该check_power
行以允许 cron.daily 在使用电池时运行。
这台较新的笔记本电脑电池性能良好,我几乎从不插着充电器使用它。另外两台旧电脑总是插着充电器,因为它们的电池状况不佳。因此 cron.daily 在旧电脑上运行良好,但在新电脑上运行不良。