/ etc / crontab中设置的默认时间背后的故事是什么?


19

据我了解,这是默认配置/etc/crontab

# m h dom mon dow user  command
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 )

为什么选择这些特定时间作为默认条目?

最初,我认为它们在安装时会随机分配,以平衡系统负载,但这似乎并不正确。

Answers:


22

Ubuntu于2004年启动,基于Debian。到那时,当前的crontab出现了,因此我们可以追溯Debian的历史来查找其起源。

这是Debian 0.93R6(1995年11月)中的crontab。存在小时,但cron.daily条目的分钟有所不同:

# m h dom mon dow user  command
42 6    * * *   root    run-parts /etc/cron.daily
47 6    * * 7   root    run-parts /etc/cron.weekly
52 6    1 * *   root    run-parts /etc/cron.monthly

由Debian 2.1(2009年3月9日)更改。目前尚不存在cron.hourly条目,但其余时间与当前相同:

25 6    * * *   root    run-parts --report /etc/cron.daily
47 6    * * 7   root    run-parts --report /etc/cron.weekly
52 6    1 * *   root    run-parts --report /etc/cron.monthly

值得庆幸的是,Debian有变更日志,因此我们可以了解为什么要进行此变更。我已经链接了错误号,值得庆幸的是Debian一直在解决这个错误:

  • 每天早一点执行cron.daily,尝试避免与cron.weekly重叠(关闭:Bug#23023)(从3.0pl1-46起)

现在,找出凌晨6点以及47和52的来源,您将不得不追溯到Debian之前的历史。我检查了原始的Vixie Cron来源,但它似乎不是来自那里。

据我所知,SLS 1.03并未提供cron,但SLS 1.05却提供了cron 。但是,它似乎不带有/ etc / crontab,并且手册页中的示例有所不同。也没有run-parts

查看Debian 0.93R6的运行部分(程序包错误),它似乎是Debian专用的工具(当时是一个简短的Perl脚本)。因此,这些cron线可能源自Debian的早期开发。


我将查看是否可以进一步追踪。如果发现任何内容,将进行编辑。
derobert 2012年

1
在进行挖掘时,我不能早于1998年4月26日crontab.5
Lekensteyn 2012年

@Lekensteyn archive.debian.org可让您将Debian版本下载回0.93R6。
derobert 2012年

@Lekensteyn您可以查看bsd或UNIX:Gnu基于UNIX(Gnu不是UNIX)。
ctrl-alt-delor
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.