我的机器上的情况/etc/crontab
如下:
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
我有两个相关的问题:
- 为什么是 17、25、47、52?我知道你可能想错开不同的工作,但为什么不更均匀地错开它们呢?比如 0、15、30、45?
- 为什么 anacron 用于每日/每周/每月命令,而不用于每小时命令?每小时命令更容易被忽略吗?(如果我理解正确的话,anacron 的用途是,如果您有一个“每周六”命令,而计算机在周六关闭,它会改为在周日运行该命令)。
答案1
我不知道第一个问题的答案。这是第二个问题,
Cron 是为持续运行的机器设计的。如果在作业到期时关闭了机器,作业就不会运行。为了更好地处理这种情况,我们编写了一个名为 Anacron 的新工具。anacron 的任务是确保这些每日、每周和每月活动确实发生,前提是计算机在一天中的某个时间点处于开启状态。它不记录小时、分钟或秒,只记录天、月和周。
它的配置文件是 -> /etc/anacrontab
Anacron 在启动时通过脚本 /etc/init.d/anacron 运行。
Anacron 并不期望系统像服务器一样全天候运行。
当您想在非 24 x 7 运行的机器上自动执行后台作业时,您应该使用 anacron。
如果您将备份脚本安排在每天晚上 11 点作为常规 cron 作业运行,而您的笔记本电脑在晚上 11 点没有启动,那么您的备份作业将不会执行。
然而,如果您在 anacron 中安排了相同的作业,那么您可以确保一旦笔记本电脑重新启动,该作业就会被执行。
它是台式机和笔记本电脑的理想选择。