Crontab (Cron Jobs) บน Linux

Ubuntu 27 ก.พ. 2020

คำสั่งและ option ของ crontab มีดังนี้

  • #crontab filename การนำเอาคำสั่ง crontab เข้ามาจาก ไฟล์อื่น
  • #crontab -e แก้ไข crontab ปัจจุบัน (ส่วนมากเราจะเพิ่มคำสั่งลงไปในนี้เลย)
  • #crontab -l ดูคำสั่ง crontab ทั้งหมดที่มีอยู่
  • #crontab -r ลบคำสั่ง crontab ที่มีทั้งหมด
  • #crontab -u user เป็นคำสั่งของผู้ดูแลระบบเท่านั้น เพื่อใช้ดู แก้ไข ลบ crontab ของ user แต่ละคน

รูปแบบของคำสั่ง crontab มีทั้งหมด 6 fields ดังนี้

  • 1 = minute มีค่า 0 – 59 เวลาเป็นนาที จะสั่งให้คำสั่งที่กำหนดทำงานทันที่เมื่อถึงนาทีที่กำหนด
  • 2 = hour มีค่า 0 – 23 เวลาเป็นชั่วโมง จะสั่งให้คำสั่งที่กำหนดทำงานทันที่เมื่อถึงชั่วโมงที่กำหนด
  • 3 = day มีค่า 1 – 31 เวลาเป็นวัน จะสั่งให้คำสั่งที่กำหนดทำงานทันที่เมื่อถึงวันที่กำหนด
  • 4 = month มีค่า 1 – 12 เวลาเป็นเดือน จะสั่งให้คำสั่งที่กำหนดทำงานทันที่เมื่อถึงเดือนที่กำหนด
  • 5 = weekday มีค่า 0 – 6 วันขะงแต่ละสัปดาห์ มีค่าดังนี้ (อาทิตย์ = 0, จันทร์ = 1, อังคาร = 2, พุธ = 3, พฤหัส = 4, ศุกร์ = 5 ,เสาร์ = 6 )
  • 6 = command คำสั่ง เราสามารถกำหนดคำสั่งได้มากมาย รวมทั้ง script ต่าง ๆ ตามที่เราต้องการ

โดยสามารถจำเป็นรูปแบบง่ายได้ดังนี้

* * * * * command to be executed
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)

เริ่มเพิ่ม Cron Jobs โดยใช้คำสั่ง

crontab -e

จากนั้นเพิมพ์คำสั่งดังต่อไปนี้ได้เลย

1 2 3 4 5 /path/to/script.sh

ยกตัวอย่างคำสั่ง Crontab รูปแบบต่างๆ

การสั่งให้ /path/to/command ทำงานเมื่อเวลาผ่านไป 5นาที หลังเที่ยงคืน ในทุกๆ วัน

5 0 * * * /path/to/command

ทำการ save แล้วสั่ง

/etc/init.d/crond restart

แท็ก

Onyx

Just a middle-aged programmer, Can do many things but not the most.