2012-11-02 30 views
34

Nếu Cron có một công việc theo lịch trình để chạy lúc 2 giờ sáng và một lúc 3 giờ sáng như thế nào những công việc sẽ bị ảnh hưởng bởi thời gian tiết kiệm ánh sáng ban ngày?Daylight Savings và Cron

Khi thời gian chuyển trở lại một giờ không thời gian đi 02:59:59-02:00:00 trực tiếp? Có nghĩa là công việc 2 giờ sáng sẽ chạy hai lần và công việc 3 giờ sáng sẽ chạy một lần? Hay là lần đầu tiên thay đổi thành 3:00:00 sáng và sau đó 2:00:00 sáng tạo cả hai công việc để chạy hai lần?

Khi thời gian chuyển về phía trước một tiếng đồng hồ không thời gian đi 01:59:59-03:00:00 gây ra việc 2 giờ sáng để không chạy và công việc 3 giờ sáng để chạy một lần? Hay là thời gian chuyển từ 2:00:00 đến 3:00:00 sáng khiến cả hai công việc phải chạy một lần?

Nói tóm lại những gì tôi đang tự hỏi là khi đạt được một giờ nào giờ 3:00 xảy ra một lần hoặc hai lần và và mất một giờ nào giờ 2:00 xảy ra ở tất cả. Tôi đã không thể tìm thấy bất cứ điều gì về điều này khi nhìn vào Google.

Trả lời

35

Câu trả lời sẽ phụ thuộc vào biến thể/gia hạn cron bạn đang sử dụng. Một số biến thể không xử lý Thời gian tiết kiệm ánh sáng ban ngày, dẫn đến thiếu việc làm và hai lần chạy công việc.

Nếu bạn đang sử dụng cron Paul Vixie, sau đó nó xử lý những thay đổi DST. Theo cron man page:

kiểm tra định kỳ mỗi phút để xem nếu modtime thư mục ống chỉ của nó (hoặc modtime on/etc/crontab) đã thay đổi

Và hơn nữa, với tham chiếu đến Daylight Saving Time (Các para 2 giải thích rõ ràng câu trả lời của bạn)

Daylight Saving Time và thời gian khác thay đổi

Local time changes of less than three hours, such as those caused by 
    the start or end of Daylight Saving Time, are handled specially. This 
    only applies to jobs that run at a specific time and jobs that are run 
    with a granularity greater than one hour. Jobs that run more fre- 
    quently are scheduled normally. 

    If time has moved forward, those jobs that would have run in the inter- 
    val that has been skipped will be run immediately. Conversely, if time 
    has moved backward, care is taken to avoid running jobs twice. 

    Time changes of more than 3 hours are considered to be corrections to 
    the clock or timezone, and the new time is used immediately. 

Vì vậy, bất cứ khi nào thời gian thay đổi có thể là 2:59:59 hoặc lúc 3:00:00, cron đang chăm sóc công việc chạy bằng cách xử lý tình huống và chỉ chạy những người bị nhỡ và tránh chạy các công việc đã chạy .

+1

Liên kết bị hỏng. Những gì Paul Vixie cron. Tôi không tìm thấy gì trên internet. –

+1

Đây là liên kết đến một kho lưu trữ của trang không tồn tại: https://web.archive.org/web/20130905110602/http://unixhelp.ed.ac.uk/CGI/man-cgi?cron+8 và đây là trang hiện tại lưu trữ các trang người dùng linux: https://linux.die.net/man/8/cron –