anacron cron.weekly 仅在登录时运行

anacron cron.weekly 仅在登录时运行

我设置了一个每周 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运行一次。anacron0anacron/etc/cron.hourly

相关内容