Bộ tạo biểu thức Cron
0-59
0-23
1-31
1-12
0-7 (0,7=CN)
Cú pháp Cron ngắn gọn nhưng dễ viết sai: 0 */6 * * * chạy cứ 6 giờ một lần, còn */6 0 * * * kích hoạt 10 lần, chỉ trong giờ đầu tiên sau nửa đêm. Bộ tạo này cho phép bạn chọn lịch trình một cách trực quan (mỗi 15 phút, vào các ngày làm việc lúc 9 giờ sáng, hoặc ngày 1 của mỗi tháng), sau đó hiển thị biểu thức chính xác kèm mô tả dễ hiểu về ý nghĩa của nó.
Cách xây dựng biểu thức Cron
-
1
Chọn mẫu có sẵn hoặc gõ trực tiếp
Mỗi phút, mỗi giờ, hằng ngày lúc nửa đêm, hằng tuần vào Chủ nhật và ngày 1 mỗi tháng chỉ cần một cú nhấp. Các trường hợp khác, hãy gõ trực tiếp giá trị vào năm trường.
-
2
Hoàn thiện lịch trình
Các giá trị cụ thể bao gồm phút, giờ, ngày trong tháng, tháng và ngày trong tuần. Các phạm vi (9–17), danh sách (1, 15) và bước (*/6) đều được hỗ trợ.
-
3
Đọc biểu thức
Công cụ luôn xuất ra định dạng cron 5 trường tiêu chuẩn, kèm mô tả bằng ngôn ngữ dễ hiểu về lịch trình.
-
4
Kiểm tra phương ngữ
Các phương ngữ khác nhau (Quartz, AWS EventBridge, Kubernetes). Hãy xác nhận biểu thức khớp với những gì trình lập lịch của bạn mong đợi.
Năm trường
* * * * *
│ │ │ │ │
│ │ │ │ └── Ngày trong tuần (0-6, Chủ nhật=0, hoặc SUN-SAT)
│ │ │ └───── Tháng (1-12, hoặc JAN-DEC)
│ │ └──────── Ngày trong tháng (1-31)
│ └─────────── Giờ (0-23)
└────────────── Phút (0-59)
Mỗi trường đều chấp nhận:
- Một số cụ thể:
5 - Một danh sách:
1,15,30 - Một phạm vi:
9-17 - Một bước:
*/10(mỗi 10) hoặc0-30/5(mỗi 5 từ 0 đến 30) - Ký tự đại diện:
*(mọi giá trị)
Các biểu thức phổ biến
| Lịch trình | Biểu thức Cron |
|---|---|
| Mỗi phút | * * * * * |
| Cứ 15 phút một lần | */15 * * * * |
| Mỗi giờ đúng đầu giờ | 0 * * * * |
| Cứ 6 giờ một lần | 0 */6 * * * |
| Mỗi ngày lúc 2 giờ 30 phút sáng | 30 2 * * * |
| Mỗi ngày làm việc lúc 9 giờ sáng | 0 9 * * 1-5 |
| Mỗi thứ Hai lúc 8 giờ sáng | 0 8 * * 1 |
| Ngày 1 của mỗi tháng, lúc 3 giờ sáng | 0 3 1 * * |
| Cứ 15 phút một lần, ngày làm việc từ 9 đến 17 giờ | */15 9-17 * * 1-5 |
| Buổi trưa ngày 1 và ngày 15 | 0 12 1,15 * * |
| Mỗi Chủ nhật lúc nửa đêm | 0 0 * * 0 |
Bẫy giữa ngày trong tháng và ngày trong tuần
Trong Cron tiêu chuẩn, nếu cả ngày trong tháng và ngày trong tuần đều được chỉ định (không phải *), tác vụ sẽ chạy khi một trong hai khớp (theo logic OR, không phải AND). 0 0 1 * MON sẽ chạy vào ngày 1 của mỗi tháng và vào mọi thứ Hai, chứ không chỉ khi ngày 1 rơi vào thứ Hai.
Vixie cron và hầu hết các bản phân phối Linux đều theo quy tắc OR này; còn Quartz (Java) và một số hệ thống khác lại dùng AND. Nếu chưa chắc chắn, hãy kiểm thử biểu thức bằng lần chạy thử (dry run) hoặc tác vụ kiểm thử trong trình lập lịch của bạn.
Sự khác biệt giữa các phương ngữ
- Cron tiêu chuẩn (Linux): 5 trường; ngày trong tuần từ 0 đến 6 (Chủ nhật = 0 hoặc 7).
- Quartz (Spring, ứng dụng Java): 6–7 trường; trường thứ nhất là giây, trường thứ hai là năm (tùy chọn); ngày trong tuần từ 1 đến 7 (Chủ nhật = 1).
- AWS EventBridge cron: gồm 6 trường, trong đó có trường năm; ngày trong tuần và ngày trong tháng phải không trùng nhau (một trong hai phải là
?). - GitHub Actions: biểu mẫu tiêu chuẩn gồm 5 trường; khoảng thời gian tối thiểu là 5 phút; chỉ hỗ trợ định dạng UTC.
- CronJob của Kubernetes: gồm 5 trường tiêu chuẩn, mặc định là UTC.
Hãy luôn xác minh rõ phương ngữ mà trình lập lịch của bạn đang sử dụng.
Múi giờ
Cron cổ điển chạy theo múi giờ cục bộ của máy chủ. Điều này gây rắc rối lớn vào các thời điểm chuyển đổi giờ mùa hè (DST): một tác vụ đặt lúc 2:30 sáng có thể chạy hai lần hoặc không chạy lần nào vào ngày đổi giờ. Các trình lập lịch hiện đại (systemd timers, Kubernetes, EventBridge) cho phép bạn chỉ định múi giờ một cách rõ ràng – hãy dùng UTC trừ khi bạn có lý do chính đáng để không làm vậy.
Câu hỏi thường gặp
Mỗi 5 đơn vị của trường, bắt đầu từ 0. Trong trường phút, */5 sẽ chạy tại các phút 0, 5, 10, 15, …, 55. Đây là cách viết tắt của 0,5,10,15,20,25,30,35,40,45,50,55.
Cron không thể biểu diễn các khoảng thời gian tùy ý không chia hết cho 60 phút hoặc 24 giờ. Với 90 phút, hãy liệt kê các thời điểm chạy cụ thể: dùng 0 0,9 * * * kết hợp với các dòng bổ sung, hoặc chuyển sang một trình lập lịch hỗ trợ các khoảng thời gian tùy ý (như systemd timers hoặc anacron).
Nửa đêm. Thứ tự các trường là phút - giờ, do đó 0 0 có nghĩa là “phút 0 của giờ 0”. Buổi trưa sẽ là 0 12 * * *.
Cron tiêu chuẩn sẽ bỏ qua tác vụ đó, các lần chạy bị bỏ lỡ sẽ không được thử lại. Anacron sẽ chạy bù các tác vụ hàng ngày, hàng tuần hoặc hàng tháng bị bỏ lỡ trong lần khởi động tiếp theo. CronJob của Kubernetes có startingDeadlineSeconds và concurrencyPolicy để xử lý rõ ràng các cửa sổ thời gian bị bỏ lỡ.
Công cụ liên quan
Bảng tham chiếu ASCII
Bảng ASCII đầy đủ từ 0 đến 127 với giá trị thập phân, thập lục phân, bát phân, nhị phân và ký hiệu tham chiếu ký tự số HTML, gồm NUL, LF và DEL.
Tham chiếu ký tự HTML
Danh sách có thể tìm kiếm các thực thể HTML, mã tên và mã số tương ứng của chúng, cùng chức năng sao chép chỉ với một cú nhấp cho các ký tự đặc biệt và biểu tượng.
Bộ chuyển đổi Base64 sang Hex
Chuyển chuỗi Base64 chuẩn thành các byte nền tảng được viết dưới dạng hexadecimal liên tục in hoa. Giải mã nghiêm ngặt, lý tưởng cho token, khóa và chữ ký JWT.
Trình tạo bảng màu ngẫu nhiên
Tạo bảng màu ngẫu nhiên từ 2 đến 15 mẫu màu, chọn phong cách rực rỡ, pastel, dịu hoặc tối, rồi sao chép mã HEX hoặc biến CSS.
Bộ chọn màu HEX
Chọn hoặc nhập màu HEX để xem RGB, HSL, CMYK ước tính, độ chói tương đối và tương phản với trắng và đen.
Trình xem hex của tệp nhị phân
Chọn một tệp và kiểm tra phần dữ liệu giới hạn từ bất kỳ offset byte hợp lệ nào dưới dạng hex dump cục bộ với cột offset, hex và ASCII.