วิธีการเรียกใช้ cron หนึ่งครั้งทุกวันเวลา 22.00 น


178

ฉันได้เข้า:

* 22 * * * test > /dev/null

อย่างไรก็ตามฉันกำลังได้รับแจ้งทางอีเมลว่านี่ทำงานทุกนาที ฉันสับสนฉันเดาว่าเพราะฉันคิดว่ามันถูกต้องสำหรับสิ่งที่ฉันต้องการ


3
เว็บไซต์นี้จะอธิบายกำหนดการ cron ใด ๆ : crontab.guru
Bruno Finger

คำตอบ:


369

มันทำงานทุกนาทีของชั่วโมง 22 ฉันเดา ลองทำสิ่งต่อไปนี้เพื่อเรียกใช้ทุกนาทีแรกของชั่วโมง 22:

0 22 * * * ....

แม้ว่าชั่วโมง 22 อาจจะค่อนข้างประหยัดโปรดพิจารณากรณีแรกของคำถามนี้
Martin Thoma

@MartinThoma ลองman cronก่อนเสมอคุณควรค้นหาสิ่งที่คุณกำลังมองหา
Marc Simon

อย่าลืมตรวจสอบวันที่ของระบบมันเกิดขึ้นกับฉันในการตั้งค่า crontab เพื่อเริ่มงานที่ 22 แต่จริง ๆ แล้วเริ่มต้นที่ 23 เพราะระบบเป็น UTC (ดังนั้น 22 สำหรับระบบคือ 23 สำหรับฉันใน GMT)
nnsense

ฉันตอบคำถามนี้ได้ แต่ฉันรู้กฎนี้อยู่แล้ว ... ฉันต้องการยืนยันความรู้ที่เงียบของฉัน: D
rnrneverdies

154

นี่คือตัวอย่างเพิ่มเติม

  • วิ่งทุก ๆ 6 ชั่วโมงเวลา 46 นาทีที่ผ่านมา:

    46 */6 * * *

  • ทำงานเวลา 2:10 น.:

    10 2 * * *

  • ทำงานที่ 3:15 น.:

    15 3 * * *

  • ทำงานที่ 4:20 น.:

    20 4 * * *

  • ทำงานเวลา 5:31 น.:

    31 5 * * *

  • ทำงานเวลา 17:31 น.:

    31 17 * * *



25

นี่คือสิ่งที่ฉันดูทุกครั้งที่ฉันเขียนรายการ crontab ใหม่:

ในการเริ่มแก้ไขจากเทอร์มินัล - ประเภท:

 zee$ crontab -e

สิ่งที่คุณจะเพิ่มลงในไฟล์ crontab:

0 22 * * 0  some-user /opt/somescript/to/run.sh

มันหมายถึงอะไร:

[ 
+ user => 'some-user',      
+ minute => 0’,             <<= on top of the hour.
+ hour => '22',              <<= at 10 PM. Military time.
+ monthday => '*',           <<= Every day of the month*
+ month => '*',              <<= Every month*
+ weekday => ‘*’,            <<= Everyday (0 thru 6) = sunday thru saturday
] 

นอกจากนี้ตรวจสอบสิ่งที่เปลือกเครื่องของคุณกำลังทำงานและตั้งชื่อไฟล์ตามนั้นหรือจะไม่ดำเนินการ

ตรวจสอบเปลือกด้วยecho $SHELLหรือecho $0

อาจเป็น "Bourne shell (sh), Bourne shell อีกครั้ง(bash), Korn shell (ksh)..etc"


1

ไวยากรณ์สำหรับ crontab

* * * * * 

Minute(0-59) Hour(0-24) Day_of_month(1-31) Month(1-12) Day_of_week(0-6) Command_to_execute

ไวยากรณ์ของคุณ

* 22 * * * test > /dev/null

งานของคุณจะดำเนินการทุกนาทีเวลา 22:00 น. ทุกสัปดาห์เดือนและปี

การเพิ่มตัวเลือก (0-59) ณ สถานที่นาทีจะทำงานหนึ่งครั้งในเวลา 22:00 น. ทุกสัปดาห์เดือนและปี

0 22 * * * command_to_execute 

แหล่งที่มาhttps://www.adminschoice.com/crontab-quick-reference

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