เรื่องราวเบื้องหลังเวลาเริ่มต้นที่กำหนดไว้ใน / 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 )

เหตุใดจึงเลือกเวลาเฉพาะสำหรับรายการเริ่มต้น

ตอนแรกฉันคิดว่าพวกมันค่อนข้างจะสุ่มในการติดตั้งเพื่อให้ภาระงานของระบบลดลง แต่ดูเหมือนจะไม่ถูกต้อง

คำตอบ:


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

โชคดีที่เดเบียนมีการเปลี่ยนแปลงดังนั้นเราจึงสามารถเห็นได้ว่าเหตุใดการเปลี่ยนแปลงนี้จึงเกิดขึ้น ฉันได้เชื่อมโยงหมายเลขข้อบกพร่องแล้วซึ่งเดเบียนก็ขอบคุณมาก:

  • ทำ cron.daily ก่อนหน้านี้เล็กน้อยพยายามหลีกเลี่ยงการทับซ้อนกับ cron.weekly (ปิด: Bug # 23023 ) (จาก 3.0pl1-46)

ตอนนี้การค้นหาว่า 06.00 น. และ 47 และ 52 มาจากไหนคุณจะต้องย้อนกลับไปสู่ประวัติศาสตร์พรีเดเบียน ฉันได้ตรวจสอบแหล่งที่มาเดิมของ Vixie Cronแล้วและมันก็ไม่ได้มาจากที่นั่น

เท่าที่ฉันสามารถบอกได้SLS 1.03ไม่ได้จัดส่ง cron แต่SLS 1.05ทำได้ อย่างไรก็ตามมันไม่ได้มาพร้อมกับ / etc / crontab และตัวอย่างใน manpage นั้นแตกต่างกัน run-partsหรือไม่ก็มี

เมื่อดูที่ run-parts จาก Debian 0.93R6 (แพ็คเกจ miscutils) ดูเหมือนว่าเป็นเครื่องมือเฉพาะ Debian (สคริปต์ Perl สั้น ๆ ในตอนนั้น) ดังนั้นเส้น cron เหล่านั้นน่าจะมาจากการพัฒนาเดเบียนยุคแรก ๆ


ฉันจะดูว่าฉันสามารถติดตามได้ต่อไป จะแก้ไขถ้าฉันเจออะไร
Derobert

1
ในขณะที่กำลังขุดฉันไม่สามารถรับได้เร็วกว่าวันที่ 26 เมษายน 1998 : crontab.5
Lekensteyn

@Lekensteyn archive.debian.orgให้คุณดาวน์โหลด Debian release ได้ที่ 0.93R6
derobert

@Lekensteyn คุณสามารถดู bsd หรือ UNIX: Gnu ขึ้นอยู่กับ UNIX (Gnu ไม่ใช่ UNIX)
ctrl-alt-delor
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.