วิธีการทำงาน cron ทุก 3 เดือน?


คำตอบ:


68

สคริปต์ต่อไปนี้จะเรียกใช้ในวันที่ 1 มกราคม, เมษายน, กรกฎาคมและตุลาคมเวลา 03:30 น

30 03 01 Jan,Apr,Jul,Oct * /path/to/script

อีกวิธีหนึ่ง แต่ชัดเจนน้อยกว่า

30 03 01 */3 * /path/to/script

จะเปิดทุก 3 เดือนเวลา 3:30 น. ของวันที่ 1 มกราคม, เมษายน, กรกฎาคมและตุลาคม


4
+1: ฉันมักจะคิดว่า / สัญกรณ์เป็นที่ชัดเจนที่สุด ... ฉันใช้มันทุกที่ที่เป็นไปได้ (คำในส่วนกำหนดเวลาของ crontab ทำให้ฉันประหลาดใจ ... ฉันจะทำ: "0 0 1 3,6,9,12 * /path/to/script.bash" ถ้าฉันทำไม่ได้ / 3)
Satanicpuppy

11
จะไม่*/3ทุกสี่เดือน (12/3 = 4)?
วอร์เรน

8
@warren ไม่มันจะไม่ ตรรกะที่นี่เป็นมากกว่าคำสั่ง mod ความจริง ตัวอย่าง: ถ้า (12% 3 == 0): run_script () ฉันคิดเกี่ยวกับเรื่องนี้เช่นกัน! เป็นคำถามที่ดีมาก
Goahnary

1
@Goahnary ฉันตระหนักว่าในขณะที่หลังจากที่ผมขอชี้แจงเกินไป :)
วอร์เรน

3
@ warren ควรเป็นตัวดำเนินการ mod แทนที่จะเป็นตัวหาร แต่โอ้ดี¯_ (ツ) _ / ¯
Goahnary

7

Wikipediaมีคำอธิบายที่ดีเกี่ยวกับวิธีกำหนดค่า Cron

สำหรับกรณีเฉพาะของคุณคุณสามารถเรียกใช้Cron Expressionเพื่อให้ทำงานได้ทุกๆ 3 เดือนเปลี่ยนเดือนให้เหมาะกับตารางงานของคุณ

0 0 1 JAN,APR,JUL,OCT  * /path/to/script.bash

2
-1 ขณะที่สิ่งนี้ถูกทำเครื่องหมายคำตอบที่ถูกต้องมันจะผิดพลาดเนื่องจากฟิลด์นั้นอยู่ในลำดับที่ไม่ถูกต้องและแม้ว่าพวกเขาในลำดับที่ถูกต้องจะทำงานทุกวันเวลาเที่ยงคืนถึง ม.ค. , เม.ย. , ก.ค. , ต.ค. (เช่น 01/01 02 / 01 ... 31/01 01/04 .. ) และไม่ใช่แค่ทุกๆสามเดือน คำตอบของฉันจะใช้ได้ แต่ก็ไม่ได้รับการยอมรับ เศร้าฉัน!
Richard Holloway

@Richard Holloway - ความลึกลับของความผิดพลาดของเซิร์ฟเวอร์ - ได้อัปเดตคำตอบของฉันแล้วขอบคุณที่ชี้ให้เห็นการพิมพ์ผิด
Jon Rhoades

1
ฉันลบ -1 เพื่อสะท้อนการเปลี่ยนแปลงแล้ว
Richard Holloway

คุณไม่ควรมีช่องว่างหลังเครื่องหมายจุลภาคการใช้ cron จำนวนมากจะเห็นว่าเป็นตัวคั่น คุณอาจเจอการใช้งานที่ต้องการเดือนที่เป็นตัวเลขเช่นกัน แต่ฉันคิดว่านี่เป็นสิ่งที่หายากในวันนี้
David Spillett

@ David Spillett ขอบคุณเราจะไปถึงที่นั่น ... อาจเป็นคำตอบที่น่ากลัวที่สุดของฉัน ถ้าฉันมีความเหมาะสมฉันจะลบมัน)
Jon Rhoades
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.