ทำไม cronjobs ถึงทำงานผิดเวลา?


10

ฉันมี cronjobs setup ที่จะทำงานทุกวันบนเซิร์ฟเวอร์ Ubuntu ของฉัน

เช่น. 0 4 * * * คำสั่ง

พวกเขากำลังทำงานยกเว้นพวกเขากำลังทำงาน 8 ชั่วโมงก่อน เมื่อตั้งค่าเซิร์ฟเวอร์ แต่เดิมนั้นถูกตั้งค่าเป็นเวลา UTC ฉันวิ่งsudo dpkg-reconfigure tzdataไปตั้งเซิร์ฟเวอร์เป็น CST ซึ่งเป็นเวลา 6 ชั่วโมงหลัง UTC น่าสนใจฉันอยู่ใน PST ซึ่งเป็นเวลา 8 ชั่วโมงหลัง UTC แต่ฉันไม่เห็นว่าเซิร์ฟเวอร์รู้ได้อย่างไร

ถ้าฉันรันคำสั่งdateมันจะแสดงเวลาเป็น CST

จะต้องมีสถานที่ที่กำหนดเวลาผิด ฉันจะแก้ไขปัญหานี้ได้อย่างไร

คำตอบ:


21

คุณจำได้ว่าจะรีสตาร์ท cron หลังจากเปลี่ยนเขตเวลาของคุณหรือไม่ ถ้าไม่ cron อาจยังคงมีความคิดเดิมของเขตเวลาจากเมื่อมันเริ่มต้น

ในขณะที่ไม่จำเป็นอย่างเคร่งครัดผมมักจะแนะนำให้รีบูตเครื่องหลังจากการเปลี่ยนโซนเวลา - โซนเวลาเซิร์ฟเวอร์ควรไม่เคยเปลี่ยนแปลง (หรืออย่างน้อยก็ควรจะมากไม่บ่อยนัก) และการค้ำประกันนี้ว่าโปรแกรมบนเซิร์ฟเวอร์ทุกคนได้รับการเริ่มต้นใหม่และ รู้เกี่ยวกับการเปลี่ยนแปลง :-)


ไม่ฉันไม่ได้รีสตาร์ท ฉันได้ทำแล้วและจะรอดูว่าเป็นปัญหาหรือไม่ (ซึ่งฉันคิดว่าอาจเป็น)
Matt McCormick

หลังจากรีสตาร์ทบริการ cron ตอนนี้ก็ทำงานในเวลาเดียวกันกับเขตเวลาที่ฉันได้ตั้งค่าโดยใช้ tzdata ขอบคุณ
Donny Kurnia

1
ฉันสังเกตเห็นรายการใน / var / log / cron แสดงเวลาไม่ถูกต้องแม้หลังจากรีสตาร์ท crond การรีสตาร์ท rsyslog แก้ไขปัญหานั้น
zymhan

@WildVelociraptor Yeah syslog จะใช้ข้อมูลเขตเวลาเก่าจนกระทั่งเริ่มต้นใหม่ (ดังนั้นจึงเป็นสิ่งที่ประทับเวลาผิดปกติแม้ว่าพวกเขาจะทำงานในเวลาที่เหมาะสม) สิ่งอื่นใดที่ใช้เวลานานและเริ่มต้นก่อนที่ข้อมูลเขตเวลาที่เปลี่ยนแปลงจะแสดงพฤติกรรมที่คล้ายกันซึ่งเป็นเหตุให้มีการระบุการรีบูต
voretaq7

7

สำหรับฉันฉันพบว่าเมื่อฉันรัน hwclockคำสั่งเวลาหนึ่งชั่วโมงนั้นแตกต่างจากตอนที่ฉันรันdateคำสั่ง เพื่อแก้ไขว่าคุณสามารถโทรหาhwclock --systohcซึ่งจะซิงค์สองครั้งและเรียกใช้ cronjobs ในเวลาที่คาดหวัง


ในกรณีของฉันทั้งสองdateและhwclockรายงานเวลาที่เหมือนกัน แต่ cron ยังคงไม่ทำสิ่งที่ฉันคาดหวัง
unfa

คุณปลอดภัยในชีวิตของฉันขอบคุณ hwclock มากมาย --systohc แก้ไขวันที่ผิดสำหรับฉัน =)
Marcus J.Kennedy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.