我设置了一个每周 cron 作业,每周六早上 00:01 运行。crontab 中的 anacron.weekly 条目设置为每周六早上 00:01 运行。crontab 条目为:
1 0 * * 6 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
anacrontab 中有一个设置为每周的条目:
7 10 cron.weekly run-parts --report /etc/cron.weekly
该脚本包含在/etc/cron.weekly
目录中,由root拥有,具有执行权限
问题是,当我未以 root 身份登录时,该作业不会运行,但只要我以 root 身份登录,cron 作业就会完美运行(10 分钟 anacron 延迟后)并执行其应该执行的操作。
这项工作确实表现出了预期的行为,一旦它运行,它就不会再次运行,直到下一个每周工作应该运行之后,但只有在我登录后才会运行。例如,如果我在星期五晚上登录,它就不会运行,但如果我在星期六晚上登录,它就会运行,然后直到下一个星期六 00:01 之后才会再次运行。
我的文件系统和主目录均未加密。该作业由 root 拥有,并且仅在我以 root 身份登录时运行。作业运行后,它会被记录在 中/var/log/syslog
,并且/var/spool/anacron/cron.weekly
文件会设置为作业运行的日期。作业创建的所有日志文件都会被创建并显示成功完成。
我已经验证服务器在作业预计运行时已经启动。
有任何想法吗?
答案1
确保您确实在anacron
定期运行,而不仅仅是以 root 身份登录时运行。您从 crontab 发布的行测试是否anacron
可执行,并且如果不是anacron
将在每周星期六凌晨 00:01 运行您的每周脚本 - 特别是,即使存在且可执行,它也不会运行。
anacron
需要定期运行,每次都会检查并运行任何到期的任务。在我的系统(Arch,不是 Ubuntu)上,通过中的脚本每小时cron
运行一次。anacron
0anacron
/etc/cron.hourly