Jaka jest historia domyślnych czasów ustawionych w / etc / crontab?

19

Według mnie jest to domyślna konfiguracja /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 )

Dlaczego wybrano te konkretne czasy dla wpisów domyślnych?

Początkowo zakładałem, że są one nieco losowe podczas instalacji, aby wyrównać obciążenie systemu, ale nie wydaje się to poprawne.

Der Hochstapler
źródło

Odpowiedzi:

22

Ubuntu rozpoczęło się w 2004 roku i jest oparte na Debianie. Do tego czasu obecna tablica była już obecna, więc możemy prześledzić historię Debiana, aby znaleźć jej pochodzenie.

Oto crontab z Debiana 0.93R6 (listopad 1995). Godzina jest obecna, ale minuta jest inna dla wpisu 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

W Debianie 2.1 (9 marca 2009 r.) Zmieniło się. Wpis cron.hourly nie jest jeszcze obecny, ale reszta czasów jest taka sama jak obecnie:

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

Na szczęście Debian ma dzienniki zmian, więc możemy zobaczyć, dlaczego ta zmiana została wprowadzona. Podłączyłem numer błędu, który na szczęście Debian utrzymuje:

  • Zrób cron. Codziennie nieco wcześniej, staraj się unikać nakładania na cron. Co tydzień (zamyka: Bug # 23023 ) (od 3.0pl1-46)

Teraz, aby dowiedzieć się, skąd pochodzą 6 rano, 47 i 52, będziesz musiał wrócić do historii sprzed Debiana. Sprawdziłem oryginalne źródła Vixie Cron i wydaje się, że nie stamtąd pochodzą.

O ile wiem, SLS 1.03 nie wysyłał crona, ale SLS 1.05 tak. Jednak nie wydaje się, aby pochodziło z pliku / etc / crontab, a przykład na stronie podręcznika jest inny. Nie ma też run-parts.

Patrząc na części run z Debiana 0.93R6 (miscutils pakietów), wydaje się, że jest to narzędzie specyficzne dla Debiana (wtedy krótki skrypt Perla). Więc te linie cron prawdopodobnie pochodzą z bardzo wczesnego rozwoju Debiana.

derobert
źródło
Zobaczę, czy uda mi się to prześledzić dalej. Będę edytować, jeśli coś znajdę.
derobert
1
Podczas kopania nie mogłem dostać się wcześniej niż 26 kwietnia 1998 : crontab.5
Lekensteyn
@Lekensteyn archive.debian.org umożliwia pobranie wersji Debiana z powrotem do wersji 0.93R6.
derobert
@ Lekensteyn możesz spojrzeć na bsd lub UNIX: Gnu jest oparty na UNIX (Gnu nie jest UNIX).
ctrl-alt-delor