Công cụ này làm gì
Công cụ phân tích biểu thức cron giải thích một lịch cron bằng ngôn ngữ dễ hiểu và liệt kê những lần chạy tiếp theo. Cú pháp cron gọn nhưng rất dễ viết sai: 0 9 * * 1-5 là chín giờ sáng các ngày trong tuần, hay mỗi phút trong khung chín giờ? Hãy dán biểu thức vào đây trước khi triển khai để kiểm tra chính xác khi nào nó được kích hoạt.
Mỗi trường trong năm trường cũng được tách ra thành đúng các giá trị mà nó cho phép, giúp dễ dàng phát hiện lỗi trong khoảng và bước nhảy.
Cách sử dụng
- Gõ biểu thức cron vào ô đầu vào, hoặc nhấn Ví dụ.
- Đọc phần mô tả và bảng các trường. Lỗi sẽ chỉ ra trường và cột bị sai, ví dụ giờ bằng 24.
- Chọn Giờ địa phương hoặc UTC cho các lần chạy sắp tới, và số lần chạy cần hiển thị.
Cú pháp cron
Một biểu thức cron có năm trường, phân tách bằng dấu cách:
┌───────────── minute (0–59)
│ ┌─────────── hour (0–23)
│ │ ┌───────── day of month (1–31)
│ │ │ ┌─────── month (1–12 or JAN–DEC)
│ │ │ │ ┌───── day of week (0–7 or SUN–SAT, 0 and 7 are Sunday)
│ │ │ │ │
* * * * *
| Ký hiệu | Ý nghĩa | Ví dụ |
|---|---|---|
* | mọi giá trị | * ở trường giờ = mỗi giờ |
, | một danh sách | 1,15 = vào ngày 1 và ngày 15 |
- | một khoảng | MON-FRI = từ thứ Hai đến thứ Sáu |
/ | một bước nhảy | */15 = mỗi 15 phút |
Các dạng viết tắt cũng được chấp nhận: @hourly, @daily (hoặc @midnight), @weekly, @monthly và @yearly (hoặc @annually).
Ví dụ
| Biểu thức | Lịch chạy |
|---|---|
*/5 * * * * | mỗi 5 phút |
0 * * * * | vào đầu mỗi giờ |
0 9 * * 1-5 | lúc 09:00 các ngày trong tuần |
30 2 1 * * | lúc 02:30 ngày đầu tiên mỗi tháng |
0 0 * * 0 | lúc nửa đêm mỗi Chủ nhật |
Câu hỏi thường gặp
› Công cụ này dùng định dạng cron nào?
Định dạng cron Unix (Vixie) chuẩn gồm năm trường, được crontab, Kubernetes CronJob, GitHub Actions và hầu hết các trình lập lịch sử dụng. Các định dạng sáu trường có giây (Quartz, Spring) không được hỗ trợ.
› Chuyện gì xảy ra khi đặt cả ngày trong tháng lẫn ngày trong tuần?
Cron chuẩn sẽ chạy tác vụ khi một trong hai trường khớp. Ví dụ 0 0 1,15 * 5 chạy vào ngày 1 và ngày 15 mỗi tháng và vào mọi thứ Sáu.
› Vì sao thời điểm chạy trên máy chủ của tôi lại khác?
Cron dùng múi giờ của máy hoặc dịch vụ chạy nó. GitHub Actions và hầu hết trình lập lịch trên cloud dùng UTC, vì vậy hãy chuyển Múi giờ sang UTC để xem chúng sẽ chạy lúc nào.
› Có dùng được tên như MON hay JAN không?
Có. Trường tháng chấp nhận JAN–DEC và trường ngày trong tuần chấp nhận SUN–SAT, không phân biệt chữ hoa chữ thường. Chủ nhật có thể viết là 0 hoặc 7.