Hướng dẫn sử dụng Crontab trong Linux
- MokaDEV
- 20/07/2024
Crontab (CRON TABLE) là một công cụ giúp bạn lên lịch thực thi các tác vụ tự động chạy nền theo định kỳ. Crontab cho phép bạn thiết lập các tác vụ cần thực thi, thời gian thực thi, và tần suất thực thi một cách linh hoạt. Sau đây cùng mình tìm hiểu cách sử dụng Crontab trong Linux nhé!
Cấu trúc của Crontab
Crontab sử dụng một cấu trúc đơn giản để thiết lập lịch thực thi các tác vụ. Cấu trúc của Crontab bao gồm 6 trường, mỗi trường cách nhau bởi dấu cách:
- Phút (0 - 59)
- Giờ (0 - 23)
- Ngày trong tháng (1 - 31)
- Tháng (1 - 12)
- Ngày trong tuần (0 - 6, 0 là Chủ Nhật)
- Lệnh hoặc script cần thực thi
Ví dụ:
* * * * * command
- - - - -
| | | | |
| | | | +----- Ngày trong tuần (0 - 6 - 0 là Chủ Nhật)
| | | +------- Tháng (1 - 12)
| | +--------- Ngày trong tháng (1 - 31)
| +----------- Giờ (0 - 23)
+------------- Phút (0 - 59)
Trong đó:
*
: Đại diện cho tất cả các giá trị.command
: Là lệnh hoặc script cần thực thi.
Cài đặt Crontab
Để cài đặt Crontab trên hệ thống Linux, bạn có thể sử dụng lệnh sau:
Trên Ubuntu/Debian
sudo apt-get install cron
Sau khi cài đặt xong, bạn có thể kiểm tra trạng thái của Crontab bằng lệnh:
sudo systemctl status cron
Trên CentOS/RHEL
sudo yum install cronie
Sau khi cài đặt xong, bạn có thể kiểm tra trạng thái của Crontab bằng lệnh:
sudo systemctl status crond
Sử dụng Crontab
Để sử dụng Crontab, bạn cần biết các lệnh cơ bản sau:
crontab -e
: Mở file Crontab để chỉnh sửa.crontab -l
: Hiển thị nội dung của file Crontab.crontab -r
: Xóa toàn bộ nội dung của file Crontab.
Ví dụ
- Thêm một tác vụ mới vào Crontab:
crontab -e
File Crontab sẽ có dạng như sau:
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
Thêm dòng sau vào cuối file Crontab:
* * * * * echo "Hello World" >> /var/log/cron.log
Lưu lại và thoát.
- Kiểm tra tác vụ đã được thêm vào Crontab:
crontab -l
- Kiểm tra file log:
cat /var/log/cron.log
Cứ mỗi phút, Crontab sẽ thực thi lệnh echo "Hello World"
và ghi vào file log.
- Xóa tác vụ khỏi Crontab:
crontab -r
Sử dụng ký tự đặc biệt
Ngoài việc sử dụng các giá trị cụ thể, Crontab còn hỗ trợ một số ký tự đặc biệt như sau:
*
: Đại diện cho tất cả các giá trị./
: Đại diện cho tần suất thực thi.-
: Đại diện cho khoảng giá trị.,
: Đại diện cho nhiều giá trị.
Ví dụ:
*/5 * * * * /home/backup.sh
Lệnh trên sẽ thực thi script backup.sh
mỗi 5 phút.
0 0 * * 1-5 /home/backup.sh
Lệnh trên sẽ thực thi script backup.sh
vào 00:00 hàng ngày từ thứ 2 đến thứ 6.
0 0 * * 1,3,5 /home/backup.sh
Lệnh trên sẽ thực thi script backup.sh
vào 00:00 hàng ngày vào thứ 2, 4, và 6.
Một số giá trị đặc biệt
@reboot
: Thực thi lệnh khi hệ thống khởi động.@yearly
: Thực thi lệnh mỗi năm.@monthly
: Thực thi lệnh mỗi tháng.@weekly
: Thực thi lệnh mỗi tuần.@daily
: Thực thi lệnh mỗi ngày.@hourly
: Thực thi lệnh mỗi giờ.
Ví dụ:
@reboot /home/backup.sh
Lệnh trên sẽ thực thi script backup.sh
khi hệ thống khởi động.
@daily /home/backup.sh
Lệnh trên sẽ thực thi script backup.sh
mỗi ngày.
Lưu ý
- Khi sử dụng Crontab, bạn cần chú ý đến quyền truy cập của file hoặc thư mục mà tác vụ cần thực thi.
- Để tránh xảy ra lỗi, bạn nên kiểm tra kết quả của tác vụ bằng cách ghi log ra file.
Kết luận
Trên đây là hướng dẫn sử dụng Crontab trong Linux. Hy vọng bài viết này giúp bạn hiểu rõ hơn về Crontab và áp dụng nó vào công việc của mình. Theo dõi Blog để cập nhật thêm nhiều bài viết hữu ích khác nhé!