สุดสัปดาห์ที่แล้วเราต้องเปลี่ยนเวลาจาก 02:00 เป็น 03:00
คำถาม:จะเกิดอะไรขึ้นถ้ามี cronjob ในเวลา 02:30 น.
crond เป็นคำตอบที่เก่ามากสำหรับการตั้งเวลามันน่าจะจัดการได้ แต่ไม่รู้ว่าจะทำอย่างไร
สุดสัปดาห์ที่แล้วเราต้องเปลี่ยนเวลาจาก 02:00 เป็น 03:00
คำถาม:จะเกิดอะไรขึ้นถ้ามี cronjob ในเวลา 02:30 น.
crond เป็นคำตอบที่เก่ามากสำหรับการตั้งเวลามันน่าจะจัดการได้ แต่ไม่รู้ว่าจะทำอย่างไร
คำตอบ:
มันอาจขึ้นอยู่กับการดำเนินการ cron ของคุณ แต่รัฐ Vixie cron ยอดนิยมในคู่มือ:
cron จะตื่นขึ้นมาทุกนาทีตรวจสอบ crontabs ที่เก็บไว้ทั้งหมดตรวจสอบแต่ละคำสั่งเพื่อดูว่าควรรันในนาทีปัจจุบันหรือไม่
และ
ข้อพิจารณาพิเศษมีอยู่เมื่อนาฬิกามีการเปลี่ยนแปลงน้อยกว่า 3 ชั่วโมงตัวอย่างเช่นที่จุดเริ่มต้นและจุดสิ้นสุดของการประหยัดเวลากลางวัน หากเวลาย้ายไปข้างหน้างานเหล่านั้นซึ่งจะทำงานในเวลาที่ถูกข้ามไปจะถูกเรียกใช้ในไม่ช้าหลังจากการเปลี่ยนแปลง ในทางกลับกันหากเวลาเคลื่อนไปข้างหลังน้อยกว่า 3 ชั่วโมงงานเหล่านั้นที่ตกอยู่ในเวลาซ้ำจะไม่ถูกเรียกใช้ซ้ำ
เฉพาะงานที่รันในเวลาเฉพาะ (ไม่ได้ระบุเป็น @hourly และไม่มีการระบุ '*' ในตัวระบุชั่วโมงหรือนาที) งานที่ระบุด้วย wildcards จะรันตามเวลาใหม่ทันที
เนื่องจากการเปลี่ยนแปลง DST น้อยกว่า 3 ชั่วโมงโปรแกรมของคุณจะทำงานหลังจาก 3:00 น
ฉันไม่แน่ใจว่านี่เป็นพฤติกรรมที่เฉพาะเจาะจงของ Vixie cron หรือไม่ฉันดูเหมือนจะจำได้ว่านี่เป็นวิธีที่ PDP-11 ของฉันทำงานได้ดีในยุค 80 แต่ฉันไม่แน่ใจ
ทางออกที่ดีที่สุดคือให้คอมพิวเตอร์ของคุณทำงานโดยตั้งค่านาฬิกาฮาร์ดแวร์เป็น UTC, (เวลาสากลเชิงพิกัด), AKA GMT หรือเวลาซูลูและเปลี่ยนวิธีการแสดงเวลาโดยการตั้งค่าโซนเวลาท้องถิ่นเพื่อให้ประหยัดแสงในเวลากลางวัน เวลาที่จะครอบครอง
บน SUSE Linux และอื่น ๆ ส่วนใหญ่ถ้าระบบนาฬิกาฮาร์ดแวร์-> สภาพแวดล้อม -> นาฬิกา -> HWCLOCKถูกตั้งค่าให้ UTC กับธง -u แล้วและโซนเวลาของคุณมีการตั้งค่าที่คุณอยู่ระบบจะแสดงเวลาท้องถิ่นโดยอัตโนมัติ ด้วยการแก้ไข DST สำหรับคุณ
สิ่งนี้มีข้อดีหลายประการ:
สำหรับประเภทข้อมูลเพิ่มเติมman hwclock
ในเทอร์มินัล