*/20 * * * *
รับรองว่ามันทำงานทุก ๆ 20 นาทีฉันต้องการทำงานทุก ๆ 20 นาทีเริ่มตั้งแต่ 5 โมงเช้าแล้วเป็นไปได้ไหมกับ Cron? มันจะเป็น:
5/20 * * * *
?
*/20 * * * *
รับรองว่ามันทำงานทุก ๆ 20 นาทีฉันต้องการทำงานทุก ๆ 20 นาทีเริ่มตั้งแต่ 5 โมงเช้าแล้วเป็นไปได้ไหมกับ Cron? มันจะเป็น:
5/20 * * * *
?
คำตอบ:
หากต้องการเริ่มงานทุก ๆ 20 นาทีเริ่มตั้งแต่ 5 โมงเช้าให้ลองทำดังนี้
5-59/20 * * * *
คำอธิบาย
*
ในสนามนาทีเป็นเช่นเดียวกับ0-59/1
ที่0-59
เป็นช่วงและ1
เป็นขั้นตอน คำสั่งจะทำงานในนาทีแรกในช่วง (0) จากนั้นนาทีต่อเนื่องทั้งหมดที่อยู่ห่างจากขั้นตอนแรกโดยขั้นตอนที่ (1) จนถึงนาทีสุดท้าย (59)
ซึ่งเป็นสาเหตุที่*/20 * * * *
จะทำงานที่ 0 นาทีหลังจากนั้น 20 นาทีและหลังจาก 40 นาทีซึ่งเท่ากับทุก ๆ 20 นาที อย่างไรก็ตาม*/25 * * * *
จะทำงานที่ 0 นาที 25 นาทีหลังจากและ 50 นาทีหลังจาก - ซึ่งไม่เหมือนกับทุก 25 นาที นั่นเป็นเหตุผลว่าทำไมจึงเป็นที่พึงปรารถนาที่จะใช้ค่าขั้นตอนในฟิลด์นาทีที่แบ่งเป็น 60 เท่า ๆ กัน
ดังนั้นเพื่อชดเชยเวลาเริ่มต้นให้ระบุช่วงอย่างชัดเจนและตั้งค่าแรกเป็นจำนวนของออฟเซ็ต
ตัวอย่าง
5-59/20 * * * *
จะทำงานที่ 5 นาทีหลังจาก 25 นาทีหลังจากและ 45 นาทีหลังจากนั้น
10-59/25 * * * *
จะทำงานที่ 10 นาทีหลังจากนั้นและ 35 นาทีหลังจากนั้น
1-59/2 * * * *
จะทำงานทุก ๆ คี่
แน่นอน!
5,25,45 * * * * /your/cron
5-59/20
จะรู้ว่าเป็นไปได้ แต่5,25,45
มีข้อได้เปรียบที่ชัดเจนในทันทีว่ามันทำอะไร
คุณสามารถลอง: */5 * * * * sleep N; your job
sleep `shuf -i 1-100 -n 1`
ไม่หลอกลวง