Giới thiệu
Crontab (CRON TABLE) là một tiện ích cho phép thực hiện các tác vụ một cách tự động theo định kỳ, ở chế độ nền của hệ thống. Crontab là một file chứa đựng bảng biểu của các mục được chạy.
Một crontab đơn giản là một text file. Mỗi người dùng có một crontab riêng, file này thường nằm ở /var/spool/cron
mà service crond sẽ đọc và thực thi theo lịch.
Cài đặt Crontab
Trên Ubuntu/Debian.
Sau khi cài đặt xong, chúng ta kiểm tra xem nó đã cài đặt thành công rồi hay chưa bằng lệnh:
Trên CentOS/Red Hat Linux
Sau khi cài đặt xong, chúng ta kiểm tra xem nó đã cài đặt thành công rồi hay chưa bằng lệnh:
Cấu trúc của Crontab
Hình thức tiêu chuẩn cho một dòng Crontab như sau:
Định dạng thời gian làm việc Crontab.
Năm trường đầu tiên trong lệnh đại diện cho các số xác định thời điểm và tần suất lệnh chạy. Một khoảng trắng phân tách từng vị trí, đại diện cho một giá trị cụ thể.
Lệnh hoặc script được chạy.
Phần tiếp theo chỉ định lệnh để thực thi. Nó đại diện cho thư mục và tên tệp chính xác của tập lệnh hoặc các lệnh bạn muốn cron hoàn thành.
Ví dụ như: /root/backup.sh
Cách lệnh Crontab
Mở tệp cấu hình Crontab người dùng hiện tại.
Để mở tệp cấu hình Crontab cho người dùng hiện tại chúng ta dùng lệnh sau:
Chúng ta có thể thêm bất kỳ số lượng nhiệm vụ đã lên lịch nào, mỗi nhiệm vụ một dòng.
Chỉnh sửa Crontab của người dùng khác.
Để chỉnh sửa Crontab của người dùng khác chúng ta dùng lệnh sau:
Liệt kê Crontab.
Lệnh để xem các mục Crontab của người dùng hiện tại
Lệnh để xem các mục Crontab của một người dùng cụ thể:
Xóa Crontab.
Để xóa Crontab chúng ta dùng lệnh sau:
Sử dụng ký tự đặc biệt.
Sử dụng dấu /
Chúng ta có thể sử dụng dấu /
(gạch chéo) để chia chuỗi thời gian thành các bước. Để chạy lệnh cứ sau 15 phút:
* có nghĩa là tất cả các giá trị và /15
có nghĩa là được tính và lặp lại sau 15 phút.
Sử dụng dấu -
Chúng ta sử dụng dấu -
(gạch ngang) để chỉ một phạm vi.
Ví dụ chúng ta chỉ định chạy lệnh từ Thứ Hai - Thứ Sáu vào lúc 4h sáng.
Sử dụng dấu ,
Chúng ta sử dụng dấu ,
phẩy để chỉ định các trường hợp riêng lẻ.
Điều này sẽ chạy mã lúc 4 giờ sáng thứ Ba và thứ Năm.
Ví dụ Crontab
Khi cấu hình Crontab, chúng ta sử dụng dấu hoa thị để chỉ định tất cả các giá trị. Việc đặt một giá trị vào một trong các trường chỉ chạy lệnh trên giá trị đó.
Ví dụ 1: Lên lịch cho một công việc trong một thời gian cụ thể.
Sử dụng crontab chạy /home/123host/backup.sh
vào 23h30 vào ngày 8 tháng 5.
Giải thích:
30
: 30 Phút.23
: 11h đêm.8
: Ngày 8.5
: Tháng 5.*
: Mỗi ngày trong tuần.
Ví dụ 2: Lên lịch cho một công việc chạy 2 lần một ngày.
Sử dụng crontab chạy /home/123host/backup.sh
vào 5h30 và 22h30 hàng ngày.
Giải thích:
30
: 30 Phút.5,22
: 5h sáng và 10h đêm.*
: Mỗi ngày.*
: Hàng tháng.*
: Mỗi ngày trong tuần.
Ví dụ 3: Sắp xếp công việc vào các ngày trong tuần.
Sử dụng crontab chạy /home/123host/backup.sh
vào 23h từ thứ 2 đến thứ 6.
Giải thích:
0
: 0 Phút.23
: 11h đêm.*
: Mỗi ngày.*
: Hàng tháng.1-5
: Thứ 2, thứ 3, thứ 4, thứ 5, thứ 6.
Sử dụng crontab chạy /home/123host/backup.sh
từ 8h đến 17h, từ thứ 2 đến thứ 6.
Giải thích:
0
: 0 Phút.8-17
: 8 giờ sáng, 9 giờ sáng, 10 giờ sáng, 11 giờ sáng, 12 giờ sáng, 1 giờ chiều, 2 giờ chiều, 3 giờ chiều, 4 giờ chiều, 5 giờ chiều.*
: Mỗi ngày.*
: Hàng tháng.1-5
: Thứ 2, thứ 3, thứ 4, thứ 5,thứ 6.
Một số giá trị thời gian cho Crontab.
Từ khóa | Tương đương |
---|---|
@yearly |
: 0 0 1 1 * |
@monthly |
: 0 0 1 * * |
@weekly |
: 0 0 * * 0 |
@daily |
: 0 0 * * * |
@hourly |
: 0 * * * * |
@reboot |
: chạy lúc khởi động. |
Tạo một tác vụ chạy vào phút đầu tiên của năm
Tạo một tác vụ chạy vào phút đầu tiên của tháng
Tạo một tác vụ chạy vào phút đầu tiên của chủ nhật hàng tuần
Tạo một tác vụ chạy vào phút đầu tiên của ngày
Tạo một tác vụ chạy vào phút đầu tiên của giờ
Tạo một tác vụ chạy khi khởi động lại
Tổng kết
Chúng ta đã kết thúc hướng dẫn sử dụng Crontab trong Linux. Hy vọng qua bài này sẽ giúp các bạn tạo và lên lịch các công việc định kỳ trên hệ thống của bạn.
Tính năng đang được phát triển