ฉันได้เข้า:
* 22 * * * test > /dev/null
อย่างไรก็ตามฉันกำลังได้รับแจ้งทางอีเมลว่านี่ทำงานทุกนาที ฉันสับสนฉันเดาว่าเพราะฉันคิดว่ามันถูกต้องสำหรับสิ่งที่ฉันต้องการ
ฉันได้เข้า:
* 22 * * * test > /dev/null
อย่างไรก็ตามฉันกำลังได้รับแจ้งทางอีเมลว่านี่ทำงานทุกนาที ฉันสับสนฉันเดาว่าเพราะฉันคิดว่ามันถูกต้องสำหรับสิ่งที่ฉันต้องการ
คำตอบ:
มันทำงานทุกนาทีของชั่วโมง 22 ฉันเดา ลองทำสิ่งต่อไปนี้เพื่อเรียกใช้ทุกนาทีแรกของชั่วโมง 22:
0 22 * * * ....
man cron
ก่อนเสมอคุณควรค้นหาสิ่งที่คุณกำลังมองหา
นี่คือตัวอย่างเพิ่มเติม
วิ่งทุก ๆ 6 ชั่วโมงเวลา 46 นาทีที่ผ่านมา:
46 */6 * * *
ทำงานเวลา 2:10 น.:
10 2 * * *
ทำงานที่ 3:15 น.:
15 3 * * *
ทำงานที่ 4:20 น.:
20 4 * * *
ทำงานเวลา 5:31 น.:
31 5 * * *
ทำงานเวลา 17:31 น.:
31 17 * * *
ในการทำงานครั้งเดียวทุกวันเวลา 22.00 น. คุณควรทำสิ่งนี้:
0 22 * * *
ภาพขนาดเต็ม: http://i.stack.imgur.com/BeXHD.jpg
ที่มา: softpanorama.org
นี่คือสิ่งที่ฉันดูทุกครั้งที่ฉันเขียนรายการ 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"
ไวยากรณ์สำหรับ 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