cron จัดการกับสิ่งที่เหลืออยู่ในงาน“ ทุกครั้ง” ได้อย่างไร


13

ถ้าฉันทำสิ่งนี้:

*/9 * * * * /path/to/wotnot

งานจะทำงานกี่ชั่วโมงในเวลาสองชั่วโมงเริ่มตั้งแต่เวลา 09.00 น

มันคือ A:

09h00
09h09
09h18
09h27
09h36
09h45
09h54
10h03
10h12
10h21
10h30
10h39
10h48
10h57

หรือ B:

09h00
09h09
09h18
09h27
09h36
09h45
09h54
10h00
10h09
10h18
10h27
10h36
10h45
10h54

คำตอบ:


31

เมื่อดูช่วงคุณแปลความหมายภายในคอลัมน์นั้นเท่านั้นดังนั้น '* / 9' ภายในคอลัมน์นาทีจึงหมายถึง "รายการทุกนาทีจากนั้นเลือกทุกค่าเก้า" การเลือกนี้จะรีเซ็ตที่ด้านบนของชั่วโมงดังนั้นคุณจึงเริ่มต้นใหม่ที่ xx: 00, xx: 09, xx: 18, ฯลฯ ทุกชั่วโมง

นอกจากนี้ยังสามารถอ่านได้ว่า "ทุก ๆ เก้านาทีของทุกชั่วโมง" ซึ่งหมายถึงการรีเซ็ตที่ด้านบนของชั่วโมง

ดังนั้นพฤติกรรมที่แท้จริงที่คุณเห็นจะสอดคล้องกับตัวเลือก B


นี่เป็นคำตอบเดียวที่ดูเหมือนจะตอบคำถามจริง คุณลองทำสิ่งนี้เพื่อให้แน่ใจหรือไม่?
g

ภายใน 10 นาทีที่ผ่านมา? ไม่ภายในสามเดือนที่ผ่านมา? ใช่ แต่ไม่ใช่เฉพาะในช่วงเวลาเก้านาที
John

ไม่เห็นว่าทำไมฉันถึงสนใจเมื่อคุณทำ แต่ถ้า ขอขอบคุณ.
g

1
ฉันเคยมีเพื่อนร่วมงานคนหนึ่งโกรธมากเกี่ยวกับ "ไม่คุณไม่ได้ทดสอบคุณกำลังพึ่งพาความทรงจำที่ผิดพลาด!" ในสถานการณ์ที่คล้ายกัน (แน่นอน 5 นาทีต่อมาพวกเขาเดินจากไปด้วยความรำคาญหลังจากที่ฉันพิสูจน์ว่ามันยังใช้งานได้) ดังนั้นฉันจึงเริ่มสร้างนิสัยเพื่อป้องกันความเสี่ยงไว้ล่วงหน้า
John

2
ขั้นตอนแรกในการทดสอบคือเพื่อให้แน่ใจว่าคุณมียี่ห้อและรุ่นเดียวกันกับลูกค้า (ในกรณีนี้คือ Jesse) ฉันไม่เห็นเบาะแสใด ๆ เกี่ยวกับสิ่งที่ cron ที่เขาใช้อยู่ (เป็นไปได้ Vixie Cron และคุณลักษณะพื้นฐานนี้มีแนวโน้มที่มีเสถียรภาพข้ามรุ่นของโปรแกรมที่.)
Kaz

22

เพื่อยืนยันคำตอบของ John */nในคอลัมน์นาทีหมายถึง "เมื่อนาทีคือ 0 mod n" นี่คือcrontabรายการ:

*/7 * * * *  date >> /tmp/foo

และนี่คือผลลัพธ์:

Thu Jan 10 14:49:01 GMT 2013
Thu Jan 10 14:56:01 GMT 2013
Thu Jan 10 15:07:01 GMT 2013

โปรดสังเกตว่าช่องว่างระหว่างสองครั้งล่าสุดไม่ใช่เจ็ดนาทีเพราะหลังจาก nn: 56 การ*/7แข่งขันครั้งต่อไปคือ `nn + 1: 07

ใช่ฉันรู้ว่าเวลาเหล่านั้นอยู่ในอนาคต (หรือตอนที่ฉันโพสต์นี้) ฉันต้องขับเคลื่อนนาฬิกาของระบบไปข้างหน้าค่อนข้างเร็วเพื่อรับคำตอบที่รวดเร็ว


5
+1 สำหรับความพยายาม :)
Sven
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.