วันอังคารที่ 18 มีนาคม พ.ศ. 2557

รู้จักกับ Cron Expression และการใช้งาน

โครงสร้างของมันปกติจะอยู่ลักษณะนี้

[min] [hour] [day of month] [month] [day of week] [program to be run]

คำอธิบาย

[min]  คือนาที ค่าที่ใส่ได้ คือ 0-59  และ * ที่หมายถึงทุกๆ นาที ซึ่งห้ามใส่ * ในช่องนี้เป็นอันขาด ไม่งั้นมันรันทุกๆ นาที (แดร็กระบบ)

[hour]   คือชั่วโมง  ค่าที่ใส่ได้คือ 0-23  และ * ที่หมายถึงทุกๆ ชั่วโมง ทั้งชั่วโมงและนาที แนะนำให้ใส่ 0 ในกรณีไม่อยากใส่อะไร เช่นอยากตั้งเป็นรันทุกๆ วัน จะได้เป็นการรันตอนเที่ยงคืน (คนน้อย) หรืออาจปรับเป็นตี 1 ตี 2 ตามสมควร

[day of month]  คือวันที่  ค่าที่ใส่ได้คือ 1-31  และ * ที่หมายถึงทุกๆ วันของเดือน (ยังกะประจำเดือน)

[month]  คือเดือน  ค่าที่ใส่ได้คือ 1-12  และ * ที่หมายถึงทุกๆ เดือน

[day of week]  คือวันของสัปดาห์  ค่าที่ใส่ได้คือ 0-6 วันอาทิตย์คือ 0 วันจันทร์คือ 1 ไล่ไปถึงวันเสาร์คือ 6 และ * ที่หมายถึงทุกๆ วันของสัปดาห์

[program to be run]  คือพาทหรือคำสั่งที่เราต้องการรัน


วิธีการใส่ก็จะมีใส่ตามวิธีเหล่านี้

1. ระบุเวลาที่ต้องการตายตัวเลย เช่น อยากรันทุกๆ 6:00 ของทุกวัน ก็จะเป็น
0   6   *   *   *   your command

2. ระบุช่วงเวลาที่ต้องการเป็นช่วงๆ เช่น อยากรันตั้งแต่วันจันทร์ถึงวันพุธ  ก็จะเป็น
0   0   *   *   1-3   your command

3. ระบุช่วงเวลาที่ต้องการเป็นหน่วยย่อยๆ เช่น อยากรันทุกๆ วันที่ 1  5  7  9  และ 11  ก็จะเป็น
0   0   1,5,7,9,11   *   *   your command

4. ระบุช่วงเวลาเป็น ทุกๆ กี่ x เช่น อยากรันทุกๆ 4 ชั่วโมง ก็จะเป็น
0   */4   *   *   *   your command

เพิ่มเติม

@yearly (or @annually) รันทุกวันที่ 1 ของเดือน มกราคม
รูปแบบ 0 0 1 1 *
@monthly รันวันแรกของเดือนทุกๆ เดือน
รูปแบบ 0 0 1 * *
@weekly รันทุกๆ วันอาทิตย์
รูปแบบ 0 0 * * 0
@daily รันทุกๆ วัน
รูปแบบ 0 0 * * *
@hourly รันทุกๆ ชั่วโมง
รูปแบบ 0 * * * *
@reboot รันตอน Start up
รูปแบบ @reboot

ตัวอย่างการตั้งเวลาในระบบ linux

คำสั่ง crontab

parameter
-l  ดูรายการที่มีการตั้งเวลาไว้
-e เพิ่มหรือแก้ไขรายการที่ตั้งเวลาไว้ แบบ vi editor

เช่น

# crontab -e

ข้างในก็ใส่ cron expression และตามด้วยโปรแกรมที่ต้องการรันได้เลย

ไม่มีความคิดเห็น:

แสดงความคิดเห็น