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

17

No meu entender, 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?

Inicialmente, assumi que eles são um pouco aleatórios na instalação para nivelar a carga do sistema, mas isso não parece estar correto.

    
por Oliver Salzburg 11.06.2012 / 18:49

1 resposta

21

O Ubuntu começou em 2004 e é baseado no Debian. Até lá, o crontab atual estava presente, então podemos rastrear a história do Debian para descobrir 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

Por Debian 2.1 (9 de março de 2009), ele mudou. A entrada cron.hourly ainda não está presente, mas as outras vezes são as mesmas que estão 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 tem changelogs, então podemos ver porque essa mudança foi feita. Eu vinculei o número do bug, que, felizmente, o Debian mantém:

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

Agora, descobrindo onde 6 AM e 47 e 52 vieram, você terá que voltar ao histórico pré-Debian. Eu verifiquei as fontes originais do Vixie Cron , e ele não parece vir de lá.

Tanto quanto eu posso dizer, SLS 1.03 não enviou cron , mas o SLS 1.05 sim. No entanto, ele não parece ter vindo com um / etc / crontab, e o exemplo na manpage é diferente. Nem tem um run-parts .

Olhando as partes de execução do Debian 0.93R6 (pacote miscutils), parece que é uma ferramenta específica do Debian (um script Perl na época). Então essas linhas cron provavelmente se originam do desenvolvimento Debian muito antigo.

    
por derobert 11.06.2012 / 19:25

Tags