Câu chuyện đằng sau thời gian mặc định được đặt trong / etc / crontab là gì?


19

Theo hiểu biết của tôi, đây là cấu hình mặc định của /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 )

Tại sao những thời điểm cụ thể được chọn cho các mục mặc định?

Lúc đầu, tôi cho rằng chúng hơi ngẫu nhiên khi cài đặt để thậm chí tải hệ thống, nhưng điều đó dường như không chính xác.

Câu trả lời:


22

Ubuntu bắt đầu vào năm 2004 và dựa trên Debian. Đến lúc đó, crontab hiện tại đã có mặt, vì vậy chúng tôi có thể theo dõi lịch sử Debian để tìm nguồn gốc của nó.

Đây là crontab từ Debian 0.93R6 (tháng 11 năm 1995). Giờ là hiện tại, nhưng phút là khác nhau cho mục cron.d 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

Bởi Debian 2.1 (ngày 9 tháng 3 năm 2009), nó đã thay đổi. Mục nhập cron.hourly chưa có mặt, nhưng thời gian còn lại vẫn giống như hiện tại:

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

Rất may, Debian có các thay đổi, vì vậy chúng ta có thể thấy lý do tại sao thay đổi này được thực hiện. Tôi đã liên kết số lỗi, rất may Debian giữ xung quanh:

  • Làm cron.d Daily sớm hơn một chút, cố gắng tránh trùng lặp với cron.weekly (đóng: Bug # 23023 ) (từ 3.0pl1-46)

Bây giờ, tìm ra 6 giờ sáng và 47 và 52 đến từ đâu, bạn sẽ phải quay lại lịch sử tiền Debian. Tôi đã kiểm tra các nguồn Vixie Cron ban đầu và dường như nó không xuất phát từ đó.

Theo như tôi có thể nói, SLS 1.03 không xuất xưởng cron, nhưng SLS 1.05 thì có. Tuy nhiên, nó dường như không đi kèm với / etc / crontab và ví dụ trong trang này thì khác. Nó cũng không có a run-parts.

Nhìn vào các phần chạy từ Debian 0.93R6 (gói miscutils), có vẻ như đây là một công cụ dành riêng cho Debian (đoạn mã Perl ngắn sau đó). Vì vậy, những dòng cron đó có lẽ bắt nguồn từ sự phát triển Debian rất sớm.


Tôi sẽ xem liệu tôi có thể theo dõi nó thêm nữa không. Sẽ chỉnh sửa nếu tôi tìm thấy bất cứ điều gì.
derobert

1
Trong khi đào, tôi không thể đến sớm hơn ngày 26 tháng 4 năm 1998 : crontab.5
Lekensteyn

@Lekensteyn archive.debian.org cho phép bạn tải xuống các bản phát hành Debian trở lại 0.93R6.
derobert

@Lekensteyn bạn có thể xem bsd hoặc UNIX: Gnu dựa trên UNIX (Gnu không phải UNIX).
ctrl-alt-delor
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.