Tại sao cronjobs chạy không đúng lúc?


10

Tôi có thiết lập cronjobs để được chạy hàng ngày trên máy chủ Ubuntu của mình.

ví dụ. Lệnh 0 4 * * *

Họ đang chạy ngoại trừ họ đang chạy sớm 8 giờ. Khi thiết lập máy chủ, ban đầu nó được đặt thành thời gian UTC. Tôi đã chạy sudo dpkg-reconfigure tzdatađể thiết lập máy chủ thành CST chậm hơn UTC 6 giờ. Thật thú vị, tôi ở PST chậm hơn UTC 8 giờ nhưng tôi không thấy máy chủ có thể biết điều đó như thế nào.

Nếu tôi chạy lệnh date, nó sẽ hiển thị thời gian trong CST.

Phải có một số nơi mà thời gian được cấu hình sai. Tôi có thể tìm ở đâu để giải quyết vấn đề này?

Câu trả lời:


21

Bạn có nhớ khởi động lại cron sau khi thay đổi múi giờ của bạn? Nếu không, cron vẫn có thể có khái niệm cũ về múi giờ từ khi nó được bắt đầu.

Mặc dù không thực sự cần thiết, tôi thường khuyên bạn nên khởi động lại máy sau khi thay đổi múi giờ - Múi giờ của máy chủ không bao giờ thay đổi (hoặc ít nhất là RẤT không thường xuyên) và điều này đảm bảo rằng mọi chương trình trên máy chủ đã được khởi động lại và biết về sự thay đổi :-)


Không, tôi đã không khởi động lại. Tôi đã làm điều đó và sẽ chờ xem liệu đó có phải là vấn đề không (mà tôi nghĩ nó có thể xảy ra).
Matt McCormick

Sau khi khởi động lại dịch vụ cron, giờ đây nó chạy cùng lúc với múi giờ mà tôi đã đặt bằng tzdata. Cảm ơn.
Donny Kurnia

1
Tôi nhận thấy các mục trong / var / log / cron đã hiển thị sai thời gian ngay cả sau khi khởi động lại crond. Khởi động lại rsyslog đã khắc phục vấn đề đó.
zymhan

@WildVelociraptor Yeah syslog cũng sẽ sử dụng dữ liệu múi giờ cũ cho đến khi được khởi động lại (vì vậy nó sẽ đánh dấu thời gian những thứ sai ngay cả khi chúng đang chạy đúng lúc). Bất cứ điều gì khác kéo dài và bắt đầu trước khi dữ liệu múi giờ thay đổi sẽ thể hiện hành vi tương tự, đó là lý do tại sao việc khởi động lại thường được chỉ định.
voretaq7

6

Đối với tôi, tôi thấy rằng khi tôi chạy hwclocklệnh, thời gian khác một giờ so với khi tôi chạy datelệnh. Để khắc phục, bạn có thể gọi hwclock --systohcsẽ đồng bộ hóa hai lần và chạy các cronjobs tại thời điểm dự kiến.


Trong trường hợp của tôi cả hai datehwclockbáo cáo thời gian giống hệt nhau, nhưng cron vẫn không làm những gì tôi mong đợi.
unfa
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.