Какова история времен по умолчанию, установленных в / 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 )

Почему эти конкретные времена были выбраны для записей по умолчанию?

Сначала я предположил, что при установке они несколько рандомизированы, чтобы выровнять нагрузку на систему, но это не совсем правильно.

Der Hochstapler
источник

Ответы:

22

Ubuntu была запущена в 2004 году и основана на Debian. К тому времени текущий crontab уже присутствовал, поэтому мы можем проследить историю Debian, чтобы найти его происхождение.

Вот crontab из Debian 0.93R6 (ноябрь 1995). Час присутствует, но минута отличается для записи 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 (9 марта 2009 г.) он изменился. Запись 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 (закрывается: Ошибка # 23023 ) (из 3.0pl1-46)

Теперь, выяснив, откуда пришли 6 утра, 47 и 52, вам придется вернуться к истории, предшествовавшей Debian. Я проверил исходные источники Vixie Cron , и, похоже, оттуда их нет.

Насколько я могу судить, SLS 1.03 не поставлял cron, а SLS 1.05 делал. Тем не менее, он, кажется, не поставляется с / etc / crontab, и пример на странице руководства другой. И при этом не имеет run-parts.

Глядя на части выполнения из Debian 0.93R6 (неправильное использование пакетов), кажется, что это инструмент, специфичный для Debian (тогда короткий сценарий Perl). Таким образом, эти строки cron, вероятно, происходят из очень ранней разработки Debian.

derobert
источник
Я собираюсь посмотреть, смогу ли я проследить это дальше. Буду редактировать, если найду что-нибудь.
Дероберт
1
Во время копания я не мог получить раньше, чем 26 апреля 1998 года : crontab.5
Лекенштейн
@Lekensteyn archive.debian.org позволяет загружать выпуски Debian обратно до 0.93R6.
Дероберт
@Lekensteyn, вы можете посмотреть на BSD или UNIX: Gnu основан на UNIX (Gnu не UNIX).
Ctrl-Alt-Delor