วิธีทำงาน crontab ทุกสัปดาห์ในวันอาทิตย์


263

ฉันพยายามหาวิธีทำงาน crontab ทุกสัปดาห์ในวันอาทิตย์ ฉันคิดว่าสิ่งต่อไปนี้ควรใช้งานได้ แต่ฉันไม่แน่ใจว่าฉันเข้าใจถูกต้องหรือไม่ ถูกต้องหรือไม่?

5 8 * * 6

7
คำถามเกี่ยวกับ 'วันอาทิตย์' แต่คำตอบที่ได้รับการยอมรับเป็นเรื่องเกี่ยวกับ 'วันเสาร์' ¿?
inigomedina

11
ใช้https://crontab.guru/ site เพื่อสร้าง cron expression
nbi

คำตอบ:


481

นี่คือคำอธิบายของรูปแบบ crontab

# 1. Entry: Minute when the process will be started [0-60]
# 2. Entry: Hour when the process will be started [0-23]
# 3. Entry: Day of the month when the process will be started [1-28/29/30/31]
# 4. Entry: Month of the year when the process will be started [1-12]
# 5. Entry: Weekday when the process will be started [0-6] [0 is Sunday]
#
# all x min = */x

ดังนั้นตามนี้คุณ5 8 * * 0จะวิ่ง 8:05 ทุกวันอาทิตย์


148
เพื่อให้อ่านง่ายขึ้นคุณสามารถใช้หนึ่งsun, mon, tue, wed, thu, fri, or satในวันนั้น นอกจากนี้ยังช่วยให้คุณไม่ต้องเลือกระหว่างการใช้0หรือ7วันอาทิตย์
ไข้หวัดใหญ่

193

หากต้องการให้ cron ทำงานในวันอาทิตย์คุณสามารถใช้วิธีใดวิธีหนึ่งต่อไปนี้:

5 8 * * 0
5 8 * * 7
5 8 * * Sun

8: 00 5 8หมายถึงช่วงเวลาของวันที่จะเกิดอะไรขึ้น:

โดยทั่วไปถ้าคุณต้องการที่จะดำเนินการบางสิ่งบางอย่างในวันอาทิตย์เพียงให้แน่ใจว่าคอลัมน์ที่ 5 มีอย่างใดอย่างหนึ่ง0, หรือ7 Sunคุณมี6ดังนั้นจึงทำงานในวันเสาร์

รูปแบบสำหรับ cronjobs คือ:

 +---------------- minute (0 - 59)
 |  +------------- hour (0 - 23)
 |  |  +---------- day of month (1 - 31)
 |  |  |  +------- month (1 - 12)
 |  |  |  |  +---- day of week (0 - 6) (Sunday=0 or 7)
 |  |  |  |  |
 *  *  *  *  *  command to be executed

คุณสามารถใช้crontab.guruเป็นเครื่องมือแก้ไขเพื่อตรวจสอบการแสดงออก cron ของคุณ


14
เพียงเพื่อช่วยให้ผู้อื่นหลีกเลี่ยงความผิดพลาดที่ฉันเพิ่งทำไปและให้แน่ใจว่าคุณตั้งค่านาทีเป็นอย่างอื่นที่ไม่ใช่ * หรือจะดำเนินการทุกนาทีของชั่วโมงนั้น!
user2924019

40

ต่อไปนี้เป็นรูปแบบของไฟล์ crontab

{นาที} {ชั่วโมง} {วันของเดือน} {เดือน} {วันของสัปดาห์} {ผู้ใช้} {path-to-shell-script}

ดังนั้นในการทำงานทุกวันอาทิตย์เวลาเที่ยงคืน (วันอาทิตย์คือ 0 ปกติ, 7 ในบางกรณีที่หายาก):

0 0 * * 0 root /path_to_command

1
การออกเสียงลงคะแนนเพื่อกล่าวถึงวิธีระบุคำสั่งเพื่อให้ทำงานในแต่ละครั้ง (อย่างไรก็ตามต้องลบคอลัมน์ผู้ใช้เมื่อแก้ไขผ่านคำสั่ง "crontab")
Joachim Wagner

1
อาทิตย์เที่ยงคืนเป็น 0 0 0 * * 1ชั่วโมงของวันจันทร์คือ
Fred Loney

5

เมื่อระบุค่า cron ของคุณคุณจะต้องตรวจสอบให้แน่ใจว่าค่าของคุณอยู่ในช่วง ตัวอย่างเช่นบาง cron ใช้ช่วง 0-7 สำหรับวันของสัปดาห์ที่ทั้ง 0 และ 7 เป็นตัวแทนของวันอาทิตย์ เราไม่ (ตรวจสอบด้านล่าง)

Seconds: 0-59
Minutes: 0-59
Hours: 0-23
Day of Month: 1-31
Months: 0-11
Day of Week: 0-6

การอ้างอิง: https://github.com/ncb000gt/node-cron


3
"เรา" ... ใคร โปรแกรมและรุ่นใด
Massimo

โดยตรงจากลิงค์: D
Mendon Ashwini


2

ฉันคิดว่าคุณต้องการเว็บไซต์เชิงโต้ตอบนี้ซึ่งมักจะช่วยฉันสร้างคำสั่ง Crontab ที่ซับซ้อน: https://crontab.guru/


0

10 * * * อา

Position 1 for minutes, allowed values are 1-60
position 2 for hours, allowed values are 1-24
position 3 for day of month ,allowed values are 1-31
position 4 for month ,allowed values are 1-12 
position 5 for day of week ,allowed values are 1-7 or and the day starts at Monday. 

2
ขอแสดงความยินดีกับคำตอบแรกของคุณที่ StackOverflow! โปรดตรวจสอบเพื่อตรวจสอบการตอบรับคู่มือ ตัวอย่างเช่นคำตอบควรมีข้อมูลใหม่ที่หายไปในคำตอบที่มีอยู่
doz10us

7
นี้จะทำงาน 24 ครั้งในวันอาทิตย์ 10 นาทีที่ผ่านมาทุกชั่วโมง
Jens Timmerman


0
* * * * 0 

you can use above cron job to run on every week on sunday, but in addition on what time you want to run this job for that you can follow below concept :

* * * * *  Command_to_execute
- � � � -
| | | | |
| | | | +�� Day of week (0�6) (Sunday=0) or Sun, Mon, Tue,...
| | | +���- Month (1�12) or Jan, Feb,...
| | +����-� Day of month (1�31)
| +������� Hour (0�23)
+��������- Minute (0�59)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.