Crontab
Crontab cho phép thực hiện các jobs theo một lịch đã định sẵn.
Cron là tên chung của công cụ lập lịch trên Linux và các hệ điều hành tương tự Unix. Crond là một process, đọc file “crontab” mỗi phút và gửi các job tương ứng cho cron theo lịch đã định. Một crontab, viết tắt của “cron table”, là một tệp chứa jobs và schedule tương ứng của từng job.
Để edit file crontab, sử dụng lệnh crontab -e
Một crontab được thể hiện dưới dạng sau:
m h dom mon dow command
Trong schedule trên:
- m (minus): Giá trị đại diện cho phút trong một giờ (từ 0 đến 59), thể hiện task sẽ chạy vào phút thứ bao nhiêu. Giá là
*
nếu muốn chạy mỗi phút. - h (hour): Giá trị đại diện cho giờ trong một ngày (từ 0 đến 23), thể hiện task sẽ chạy vào giờ thứ bao nhiêu. Đặt là
*
nếu muốn chạy hàng giờ. - dom (day of month): Giá trị đại diện cho ngày trong tháng (từ 1 đến 31), thể hiện task sẽ chạy vào ngày bao nhiêu trong tháng. Đặt là
*
nếu muốn chạy hàng ngày. - mon (month): Giá trị đại diện cho tháng (từ 1 đến 12), thể hiện task sẽ chạy vào tháng nào. Đặt là
*
nếu muốn task chạy mỗi tháng. - dow (day of week): Giá trị đại diện cho ngày trong tuần (từ 0 đến 7, trong đó 0 và 7 đều là Sunday). Đặt là
*
nếu muốn task chạy vào bất kỳ ngày nào trong tuần.
Ví dụ, cho schedule sau: 30 15 15 * 7 echo $(date) >> date.txt
- m = 30, task được chạy vào phút thứ 30 mỗi giờ
- h = 15, task được chạy vào mỗi 15 giờ
- dom = 15, task được chạy vào ngày 15 mỗi tháng
- mon = *, task được chạy hàng tháng
- dow = 7, task được chạy vào chủ nhật hàng tuần
- command =
echo $(date) >> date.txt
, hệt thống sẽ ghi ngày chạy job vào file date.txt
Tóm lại, lệnh trên sẽ ghi ngày hiện tại vào file date.txt vào mỗ 15h30 ngày 15 mỗi tháng và chỉ khi đó là chủ nhật.