Cron job là gì? Ví dụ các cú pháp thường gặp
30/08/2024 03:26 am | Lượt xem : 1229
Cron job là một công cụ lập lịch tác vụ tự động trong hệ thống Unix-like, bao gồm cả Linux. Nó cho phép bạn thực thi một lệnh hoặc tập lệnh (script) vào một thời điểm cụ thể trong tương lai hoặc lặp lại theo một chu kỳ nhất định. Xem ngay bài viết bên dưới của Tenten.vn để hiểu hơn về Cron Job nhé.
Contents
Cron job là gì?
Cron job là một công cụ vô cùng hữu ích để tự động hóa các tác vụ lặp đi lặp lại trong hệ thống Linux. Bằng cách hiểu rõ cách thức hoạt động và cấu trúc của cron job, bạn có thể tối ưu hóa công việc của mình và đảm bảo hệ thống luôn hoạt động ổn định.
Cron Job giúp bạn:
- Tự động hóa các tác vụ định kỳ: Thay vì phải thủ công thực hiện các công việc lặp đi lặp lại như sao lưu dữ liệu, gửi email, cập nhật hệ thống, bạn có thể giao cho cron job đảm nhiệm.
- Tiết kiệm thời gian: Việc tự động hóa các tác vụ giúp bạn tiết kiệm thời gian và công sức.
- Đảm bảo tính chính xác: Cron job giúp đảm bảo các tác vụ được thực hiện đúng thời điểm và theo đúng lịch trình đã đặt.
Một số thông tin cơ bản về Cron job
Bạn có thể tạo và chỉnh sửa cron jobs bằng nhiều cách khác nhau. Trong hướng dẫn này, chúng tôi sẽ chỉ bạn cách thực hiện qua Linux Shell Prompt (Terminal).
Nếu bạn sử dụng VPS hosting trên Tenten, hãy vào trang quản trị VPS để lấy thông tin truy cập server qua SSH. Nếu gặp vấn đề, bạn có thể xem hướng dẫn PuTTY để kết nối SSH.
Để chỉnh sửa file crontab của người dùng hiện tại, nhập lệnh crontab -e trong terminal:
Nếu sử dụng vi editor, bạn có thể tìm hiểu các lệnh cơ bản của vi để sử dụng hiệu quả.
Để chỉnh sửa crontab của người dùng khác, nhập:
sudo su crontab -u username -e
Để xem các cron files đã tạo, nhập crontab -l. Nếu không có file nào, kết quả sẽ như sau:
Để xem danh sách file crontab của người dùng khác, nhập:
sudo su crontab -u username -l
Ngoài việc biết các tác vụ cơ bản, bạn cũng cần nắm vững cú pháp crontab. Một file crontab gồm 2 phần: lịch trình và lệnh. Ví dụ:
* * * * * /bin/sh backup.sh
Lệnh này chạy backup mỗi phút. Ví dụ khác:
30 18 * * * rm /home/sydtesting/tmp/*
Lệnh này xóa các file tmp khỏi /home/sydtesting/tmp mỗi ngày lúc 6:30 PM.
Hướng dẫn viết cú pháp Cron chính xác
File crontab có 5 trường, mỗi trường được đại diện bởi một dấu hoa thị, dùng để xác định ngày và thời gian chạy tác vụ lặp đi lặp lại:
- Minute (phút): từ 0 đến 59
- Hour (giờ): từ 0 đến 23
- Day of the month (ngày trong tháng): từ 1 đến 31
- Month (tháng): từ 1 đến 12
- Day of the week (ngày trong tuần): từ 0 đến 7
Các ký tự đặc biệt trong crontab:
- Dấu hoa thị (*): đại diện cho tất cả các giá trị trong trường.
- Dấu phẩy (,): liệt kê nhiều giá trị.
- Dấu gạch nối (-): xác định một phạm vi giá trị.
- Dấu gạch chéo (/): xác định khoảng thời gian.
- Chữ cái “L”: chỉ định ngày cuối cùng của tuần hoặc tháng.
- Chữ cái “W”: chỉ định ngày gần nhất trong tuần.
- Dấu thăng (#): xác định ngày của tuần theo thứ tự (ví dụ: 1#2 là thứ Hai thứ hai trong tháng).
- Dấu chấm hỏi (?): để trống trường không cần thiết.
Ví dụ:
- * * * * * /path/to/command: chạy lệnh mỗi phút.
- 30 18 * * * /path/to/command: chạy lệnh lúc 18:30 mỗi ngày.
- 0 0 1 * * /path/to/command: chạy lệnh vào nửa đêm ngày 1 mỗi tháng.
Một số ví dụ về cú pháp Cronjob thường gặp
Diễn đạt | Ý nghĩa |
---|---|
0 0 * * * /bin/sh backup.sh | Chạy backup cơ sở dữ liệu vào giữa đêm hàng ngày. |
0 6,18 * * * /bin/sh backup.sh | Chạy backup cơ sở dữ liệu lúc 6AM và 6PM hàng ngày. |
0 */6 * * * /scripts/monitor.sh | Thực thi giám sát mỗi 6 giờ. |
*/10 * * * * /home/user/script.sh | Chạy script trong thư mục chính mỗi 10 phút. |
0 * 20 7 * /bin/sh backup.sh | Chạy backup cơ sở dữ liệu mỗi giờ vào ngày 20/07. |
0 0 * * 2 /bin/sh backup.sh | Chạy backup cơ sở dữ liệu vào giữa đêm mỗi thứ Ba. |
* * * 1,2,5 * /script/script.sh | Chạy lệnh vào tháng 1, tháng 2 và tháng 5. |
10-59/5 5 * * * /home/user/script.sh | Chạy lệnh mỗi 5 phút từ 5:10AM đến 5:59AM hàng ngày. |
0 8 1 */3 * /home/user/script.sh | Chạy lệnh hàng quý vào ngày 1 lúc 8AM. |
* * * * * /scripts/script.sh; /scripts/script2.sh | Đặt lịch nhiều job trên cron job độc lập. |
@reboot /scripts/script.sh | Chạy tác vụ nhất định mỗi khi khởi động hệ thống. |
0 0 1 * * /home/user/script.sh | Chạy lệnh vào ngày đầu tiên của mỗi tháng. |
Kết luận
Cron job là một công cụ vô cùng hữu ích để tự động hóa các tác vụ lặp đi lặp lại trong hệ thống Linux. Bằng cách hiểu rõ cách thức hoạt động và cấu trúc của cron job, bạn có thể tối ưu hóa công việc của mình và đảm bảo hệ thống luôn hoạt động ổn định.
Bài liên quan
Hyper-V là gì? Lợi ích khi sử dụng nền tảng ảo hóa của Microsoft
Tổng hợp top 7 Linux Distro tốt nhất năm 2024