Cách đặt thời gian Crontab trên Linux | Hẹn giờ Crontab

Crontab là gì?

Tính năng Cron trong Linux thực chất là 1 chế độ sắp xếp tự động các chương trình, ứng dụng và kích hoạt chúng tại 1 thời điểm nhất định trong hệ thống, tương tự với Task Scheduler của Windows.

Sử dụng Crontab như thế nào?

Tất cả những gì chúng ta cần làm tại đây là gán các chương trình cần thực thi tới file crontab của hệ thống và sử dụng cấu trúc lệnh phù hợp, cron sẽ tự động thực hiện các ứng dụng đó vào thời điểm đã được thiết lập sẵn trước đó. Do vậy, tính năng này rất phù hợp trong quá trình tự động sao lưu dữ liệu, bảo dưỡng hệ thống… và các công việc tương tự khác.

Cron làm việc thế nào?

Một cron schedule đơn giản là một text file. Mỗi người dùng có một cron schedule riêng, file này thường nằm ở /var/spool/cron. Crontab files không cho phép bạn tạo hoặc chỉnh sửa trực tiếp với bất kỳ trình text editor nào, trừ phi bạn dùng lệnh crontab. Một số lệnh thường dùng:

crontab -e: tạo hoặc chỉnh sửa file crontab
crontab -l: hiển thị file crontab
crontab -r: xóa file crontab​

Cách đặt thời gian Crontab trên Linux

Cấu trúc của crontab

Một crontab file có 5 trường xác định thời gian, cuối cùng là lệnh sẽ được chạy định kỳ, cấu trúc như sau:

* * * * * command to be executed
– – – – –
| | | | |
| | | | +—– day of week (0 – 6) (Sunday=0) (Thứ)
| | | +——- month (1 – 12) (Tháng)
| | +——— day of month (1 – 31) (ngày)
| +———– hour (0 – 23) (giờ)
+————- min (0 – 59)​ (phút)

Nếu một cột được gán ký tự *, nó có nghĩa là tác vụ sau đó sẽ được chạy ở mọi giá trị cho cột đó.

Ví dụ hẹn giờ Cron table:

Cấu hình Cron chạy mỗi ngày

0 4 * * * Cau_lenh

=> Sẽ thực thi Cau_lenh vào lúc 4h00 sáng mỗi ngày

Cấu hình chạy Cron 1 tuần 1 lần

0 2 * * 0 Cau_lenh

=> Sẽ thực thi Cau_lenh vào lúc 2h00 sáng chủ nhật hàng tuần (0 là chủ nhật)

Cấu hình chạy Cron vào một ngày trong tháng

0 23 30 * * Cau_lenh

=> Sẽ thực thi Cau_lenh vào lúc 23h00 ngày 30 hàng tháng

Và còn rất nhiều nữa

Cách liệt kê các Crontab hiện có

Liệt kê cron của Root

crontab -l

Liệt kê cron của một User bất kỳ

crontab -u username -l

 

Trả lời