รายการ Crontab ที่มีช่วงชั่วโมงจะข้ามเที่ยงคืน


18

นี่เป็นข้อมูลจำเพาะเวลา crontab ที่ถูกต้องหรือไม่ทำสิ่งที่คาดหวัง:

0 22-4 * * *

หรือจำเป็นต้องทำอะไรบางอย่างเช่น

0 22,23,0,1,2,3,4 * * *

คำตอบ:


5

ฉันไม่เคยลองใช้ช่วงดังกล่าวและฉันไม่แน่ใจว่าจะใช้งานได้หรือไม่ ดังนั้นคำแนะนำแรกของฉันคือการทดสอบและดูว่าเกิดอะไรขึ้น - แม้ว่าอาจมีสคริปต์ที่ทำเฉพาะรายการบันทึกหรือสิ่งอื่นที่ไม่มีอันตราย

ข้อที่สองสำหรับ ATT และ BSD cron คุณไม่สามารถมีช่วงและรายการที่มีอยู่ร่วมได้ดังนั้นคุณจะต้องแสดงรายการแต่ละชั่วโมงแยกกันหรือมีสองบรรทัดบรรทัดหนึ่งที่มีช่วงและอีกหนึ่งรายการ


คำถามที่แก้ไขแล้วจะมีผลกับ ATT / BSD โดยคำตอบของคุณ ฉันกำลังเขียนข้อมูลจำเพาะ crontab "ของฉัน" ในการกำหนดค่างาน Jenkins (และจะทดสอบในคืนนี้ด้วยงานหลอกตา) แต่ฉันขอให้ที่นี่เพื่อทราบว่าพฤติกรรมที่คาดหวังในระบบ Unix / Linux
hyde

ที่จริงฉันคาดหวังว่ามันจะไม่ทำงานและจะต้องประหลาดใจถ้ามัน แต่ฉันก็คาดหวังว่า cron จะบ่นถ้าคุณป้อนช่วงที่ไม่ถูกต้อง
เจนนี่ D

12

ฉันมีปัญหาในการใช้ cronjobs เกินเที่ยงคืน ฉันลงเอยที่รายการที่เหมือนกันเกือบสองรายการสำหรับสคริปต์ที่เกี่ยวข้อง

* 22-00 * * * /myscript
* 00-05 * * * /myscript

ที่ดูเหมือนจะทำเคล็ดลับ
ฉันกำลังประสบปัญหา cron ล้มเหลวเนื่องจากการใช้ 22-05 และโดยกระบวนการกำจัดออกมาด้วยวิธีนี้


เพียงทราบดูเหมือนว่าใช้ไม่ได้กับ*/5:*/5 00-05 * * * /myscript
dentex

8

มี cron daemons หลากหลายอยู่รอบ ๆ เว้นแต่คุณจะบอกได้อย่างชัดเจนว่าคุณกำลังใช้อะไรอยู่ (การจัดการรายการในกรณีมุมเช่นนี้สามารถเปลี่ยนจากเวอร์ชันเป็นรุ่นถัดไปได้เป็นอย่างดี) ไม่มีคำตอบ ทางออกที่ดีที่สุดคือไปกับรายการที่ชัดเจนของคุณ ฉันจะไม่แปลกใจถ้าการใช้งานบางอย่างทำให้คุณรู้สึกว่า4-22...

เอกสารในพื้นที่ของคุณยังพูดถึงกรณีเช่นนี้หรือไม่? อาจถูกกฎหมายที่จะมีสองรายการเช่น22-24,1-4?


8
ฉันสามารถยืนยันได้ว่า22-23,0-4(โปรดทราบว่า crontab ไม่ได้24ทำงาน) อย่างสมบูรณ์แบบอย่างน้อยใน centos ที่ฉันทดสอบ
qwertyboy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.