Pertanyaan Apa cerita di balik waktu default yang ditetapkan di / etc / crontab?


Untuk 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.


17
2018-06-11 16:49


asal




Jawaban:


Ubuntu dimulai pada tahun 2004, dan didasarkan pada Debian. Pada saat itu, crontab saat ini hadir, sehingga kita dapat menelusuri sejarah Debian untuk menemukan asal-usulnya.

Berikut ini adalah crontab dari Debian 0.93R6 (November 1995). Jam 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 ada, 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 terjadi. Saya telah menautkan nomor bug, yang untungnya Debian tetap ada:

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

Sekarang, mencari tahu darimana mulai pukul 06.00 dan 47 dan 52, Anda harus mengikuti kembali ke riwayat pra-Debian. Saya sudah memeriksa sumber Vixie Cron asli, dan sepertinya tidak datang dari sana.

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

Melihat bagian-bagian run dari Debian 0.93R6 (paket miscutils), tampaknya ini adalah alat spesifik Debian (skrip Perl yang pendek saat itu). Jadi garis-garis cron itu mungkin berasal dari pengembangan Debian yang sangat awal.


21
2018-06-11 17:25



Luar biasa. Terima kasih atas penelitian Anda :) - Der Hochstapler
Saya akan melihat apakah saya bisa melacaknya lebih jauh. Akan mengedit jika saya menemukan sesuatu. - derobert
Saat menggali, saya tidak bisa mendapatkan lebih awal 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