web-dev-qa-db-ja.com

/ etc / crontabで設定されたデフォルトの時間の背後にあるストーリーは何ですか?

私の理解では、これは/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 )

デフォルトのエントリにこれらの特定の時間が選択されたのはなぜですか?

最初は、システム負荷を均等にするためにインストール時に多少ランダム化されると想定していましたが、それは正しくないようです。

19
Der Hochstapler

Ubuntuは2004年に開始され、Debianに基づいています。そのときまでに、現在のcrontabが存在していたので、Debianの歴史をたどってその起源を見つけることができます。

Debian 0.93R6(1995年11月)のcrontabは次のとおりです。時間は存在しますが、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(2009年3月9日)までに変更されました。 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との重複を避けてください(閉じる: Bug#2302 )(3.0pl1-46以降)

さて、午前6時と47と52がどこから来たのかを知るには、Debian以前の歴史に戻る必要があります。 元のVixie Cronのソース を確認しましたが、そこから来ているようには見えません。

私が知る限り、 SLS 1. はcronを出荷しませんでしたが、 SLS 1.05 は出荷しました。ただし、/ etc/crontabが付属していないようで、マンページの例は異なります。 run-partsもありません。

Debian 0.93R6の実行部分(パッケージのミスカット)を見ると、Debian固有のツールのようです(当時の短いPerlスクリプト)。したがって、これらのcron行は、おそらく非常に初期のDebian開発からのものです。

22
derobert