Qual é a história por trás dos horários padrão definidos em / etc / crontab?

19

Para meu entendimento, esta é a configuração padrão de /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 )

Por que esses horários específicos foram escolhidos para as entradas padrão?

No começo, presumi que eles eram um pouco aleatórios na instalação para nivelar a carga do sistema, mas isso não parece estar correto.

Der Hochstapler
fonte

Respostas:

22

O Ubuntu começou em 2004 e é baseado no Debian. Até então, o crontab atual estava presente, então começamos a rastrear a história do Debian para encontrar suas origens.

Aqui está o crontab do Debian 0.93R6 (novembro de 1995). A hora está presente, mas o minuto é diferente para a entrada 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

No Debian 2.1 (9 de março de 2009), ele mudou. A entrada cron.hourly ainda não está presente, mas o restante das vezes é igual ao atualmente:

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

Felizmente, o Debian possui changelogs, para que possamos ver por que essa alteração foi feita. Eu vinculei o número do bug, que felizmente o Debian mantém por aí:

  • Cron.daily um pouco antes, tente evitar a sobreposição com cron.weekly (fecha: Bug # 23023 ) (de 3.0pl1-46)

Agora, descobrindo de onde vieram 6 da manhã e 47 e 52, você terá que voltar à história pré-Debian. Verifiquei as fontes originais do Vixie Cron , e elas não parecem vir de lá.

Até onde eu sei, o SLS 1.03 não foi enviado com cron, mas o SLS 1.05 foi. No entanto, ele não parece ter vindo com um / etc / crontab, e o exemplo na página de manual é diferente. Nem tem um run-parts.

Olhando as partes executadas do Debian 0.93R6 (pacote miscutils), parece ser uma ferramenta específica do Debian (um pequeno script Perl na época). Portanto, essas linhas cron provavelmente se originam do desenvolvimento inicial do Debian.

derobert
fonte
Vou ver se consigo rastrear mais. Editará se eu encontrar alguma coisa.
11262 derobert
1
Enquanto cavando, eu não poderia começar mais cedo do que 26 abr 1998 : crontab.5
Lekensteyn
O @Lekensteyn archive.debian.org permite que você baixe as versões do Debian de volta ao 0.93R6.
11262 derobert
@Lekensteyn, você pode olhar para bsd ou UNIX: o Gnu é baseado no UNIX (o Gnu não é o UNIX).
Ctrl-alt-delor