Что такое история по умолчанию, установленная в / etc / crontab?

17

Насколько я понимаю, это стандартная конфигурация /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 )

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

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

    
задан Oliver Salzburg 11.06.2012 в 18:49
источник

1 ответ

21

Ubuntu запущен в 2004 году и основан на Debian. К тому моменту присутствовал текущий кронтаб, поэтому мы можем отслеживать историю 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 AM и 47 и 52, вам нужно будет вернуться в историю до Debian. Я проверил исходные источники Vixie Cron , и он не делает Кажется, оттуда.

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

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

    
ответ дан derobert 11.06.2012 в 19:25
источник