Apa cerita di balik waktu default yang diatur di / etc / crontab?

19

Menurut pemahaman saya, ini adalah konfigurasi default /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 )

Mengapa waktu khusus ini dipilih untuk entri default?

Pada awalnya saya berasumsi bahwa mereka agak acak pada instalasi untuk meratakan beban sistem, tetapi itu tampaknya tidak benar.

Der Hochstapler
sumber

Jawaban:

22

Ubuntu dimulai pada 2004, dan didasarkan pada Debian. Pada saat itu, crontab saat ini sudah ada, jadi kita bisa menelusuri sejarah Debian untuk menemukan asal-usulnya.

Ini adalah crontab dari Debian 0.93R6 (November 1995). Jamnya hadir, tetapi menitnya berbeda untuk entri 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

Oleh Debian 2.1 (9 Maret 2009), itu berubah. Entri cron.hourly belum hadir, tetapi sisa waktunya sama dengan saat ini:

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

Untungnya, Debian memiliki changelog, jadi kita bisa melihat mengapa perubahan ini dilakukan. Saya telah menautkan nomor bug, yang untungnya tetap ada di Debian:

  • Lakukan cron. Setiap hari sedikit lebih awal, cobalah untuk menghindari tumpang tindih dengan cron.weekly (tutup: Bug # 23023 ) (dari 3.0pl1-46)

Sekarang, mencari tahu dari mana 6 pagi dan 47 dan 52 berasal, Anda harus mengikuti kembali ke sejarah pra-Debian. Saya telah memeriksa sumber-sumber asli Vixie Cron , dan sepertinya tidak berasal dari sana.

Sejauh yang saya tahu, SLS 1.03 tidak mengirimkan cron, tetapi SLS 1.05 melakukannya. Namun, tampaknya tidak datang dengan / etc / crontab, dan contoh di halaman manual berbeda. Juga tidak memiliki run-parts.

Melihat run-parts dari Debian 0.93R6 (paket miscutils), sepertinya ini adalah alat khusus-Debian (skrip Perl pendek saat itu). Jadi garis cron tersebut mungkin berasal dari perkembangan Debian yang sangat awal.

derobert
sumber
Saya akan melihat apakah saya bisa melacaknya lebih jauh. Akan mengedit jika saya menemukan sesuatu.
derobert
1
Saat menggali, saya tidak bisa mendapatkan lebih awal dari 26 April 1998 : crontab.5
Lekensteyn
@Lekensteyn archive.debian.org memungkinkan Anda mengunduh rilis Debian kembali ke 0.93R6.
derobert
@Lekensteyn Anda bisa melihat bsd atau UNIX: Gnu didasarkan pada UNIX (Gnu bukan UNIX).
ctrl-alt-delor