Biểu thức cron trông như số và dấu hoa thị ngẫu nhiên, nhưng chúng kiểm soát thời điểm hàng triệu tác vụ lên lịch chạy trên internet. Dù bạn thiết lập script sao lưu, lên lịch báo cáo email, hay cấu hình pipeline CI/CD, hiểu cron là thiết yếu. Hướng dẫn này giúp dễ dàng bằng Trình phân tích Cron miễn phí.
Bạn cần gì
- Biểu thức cron cần giải mã, hoặc lịch trình bạn muốn biểu diễn dạng cron
- Một trình duyệt web (Chrome, Firefox, Safari, hoặc Edge)
- Không cần tài khoản hay cài đặt
Hướng dẫn từng bước
Nhập biểu thức cron
Mở công cụ Trình phân tích Cron. Nhập hoặc dán biểu thức cron vào ô nhập liệu. Ví dụ, thử 0 9 * * 1. Công cụ phân tích ngay và cho bạn biết ý nghĩa bằng ngôn ngữ tự nhiên.
Đọc kết quả dễ hiểu
Trình phân tích dịch biểu thức thành mô tả rõ ràng. Với 0 9 * * 1, bạn sẽ thấy "Lúc 09:00 vào Thứ Hai." Công cụ cũng hiển thị các thời gian chạy tiếp theo để bạn xác minh lịch trình đúng như mong đợi.
Điều chỉnh và thử nghiệm
Sửa biểu thức và xem mô tả cập nhật theo thời gian thực. Thay đổi số, thay dấu hoa thị bằng giá trị, hoặc thêm phạm vi. Vòng phản hồi tức thì này là cách nhanh nhất để học cú pháp cron và xây dựng lịch trình chính xác bạn cần.
Lưu ý Biểu thức cron thường có năm trường: phút, giờ, ngày trong tháng, tháng, và ngày trong tuần. Một số hệ thống thêm trường thứ sáu cho giây, nhưng năm trường là chuẩn.
Hiểu năm trường
Biểu thức cron gồm năm trường cách nhau bằng 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-7, trong đó 0 và 7 là Chủ nhật)
│ │ │ │ │
* * * * *
Dấu hoa thị * nghĩa là "mỗi." Số nghĩa là "chính xác tại giá trị này." Đó là nền tảng — mọi thứ khác xây dựng từ đó.
Các mẫu cron phổ biến
Đây là các mẫu bạn sẽ sử dụng thường nhất. Nhập bất kỳ mẫu nào vào Trình phân tích Cron để xem giải thích và xác minh:
| Biểu thức | Ý nghĩa |
|---|---|
* * * * * |
Mỗi phút |
0 * * * * |
Mỗi giờ (phút 0) |
0 9 * * * |
Mỗi ngày lúc 9:00 |
0 9 * * 1 |
Mỗi Thứ Hai lúc 9:00 |
0 9 * * 1-5 |
Ngày trong tuần lúc 9:00 |
0 0 1 * * |
Ngày đầu tiên mỗi tháng lúc nửa đêm |
0 */6 * * * |
Mỗi 6 giờ |
30 8 * * 1,3,5 |
Thứ Hai, Tư, Sáu lúc 8:30 |
0 0 * * 0 |
Mỗi Chủ nhật lúc nửa đêm |
*/15 * * * * |
Mỗi 15 phút |
Mẹo Cú pháp bước */n nghĩa là "mỗi n khoảng." Vậy */15 trong trường phút nghĩa là mỗi 15 phút (tại phút 0, 15, 30 và 45 mỗi giờ). Cú pháp phạm vi 1-5 trong trường ngày trong tuần nghĩa là Thứ Hai đến Thứ Sáu.
Giải thích ký tự đặc biệt
| Ký tự | Ý nghĩa | Ví dụ |
|---|---|---|
* |
Mọi giá trị | * * * * * = mỗi phút |
, |
Nhiều giá trị | 0 9,17 * * * = lúc 9 sáng và 5 chiều |
- |
Phạm vi giá trị | 0 9 * * 1-5 = ngày trong tuần |
/ |
Khoảng bước | */10 * * * * = mỗi 10 phút |
Xây dựng biểu thức riêng
Để tạo biểu thức cron từ đầu, hãy nghĩ lịch trình như câu trả lời cho năm câu hỏi:
- Vào phút nào? (0-59, hoặc
*cho mỗi phút) - Vào giờ nào? (0-23, hoặc
*cho mỗi giờ) - Vào ngày nào trong tháng? (1-31, hoặc
*cho mỗi ngày) - Vào tháng nào? (1-12, hoặc
*cho mỗi tháng) - Vào ngày nào trong tuần? (0-7, hoặc
*cho mỗi ngày)
Ví dụ, "Mỗi Thứ Ba và Thứ Năm lúc 14:30" trở thành: phút=30, giờ=14, ngày=, tháng=, thứ=2,4, cho bạn 30 14 * * 2,4.
Quan trọng Cron sử dụng giờ 24h. 9 sáng là 9, nhưng 9 tối là 21. Cũng lưu ý múi giờ phụ thuộc vào máy chủ chạy cron job, không phải giờ địa phương. Luôn xác nhận hệ thống sử dụng múi giờ nào.
Câu hỏi thường gặp
Chuyện gì xảy ra nếu tôi đặt cả ngày trong tháng và ngày trong tuần? Trong cron chuẩn, tác vụ chạy khi bất kỳ điều kiện nào thỏa mãn (là OR, không phải AND). Điều này gây bất ngờ cho nhiều người. Nếu cần cả hai điều kiện, sử dụng script bao bọc kiểm tra ngày.
Tôi có thể lên lịch chạy mỗi 2 giờ không?
Có. Sử dụng 0 */2 * * * chạy tại phút 0 của mỗi giờ thứ hai.
Sự khác biệt giữa cron 5 trường và 6 trường? Một số hệ thống (như Spring, Quartz) thêm trường giây ở đầu. Cron Unix chuẩn sử dụng năm trường. Trình phân tích Cron hỗ trợ cả hai định dạng.
Bước tiếp theo
Bây giờ bạn đã biết đọc và viết biểu thức cron, hãy thử xây dựng lịch trình cho dự án. Nếu làm việc với công cụ lập trình khác, xem Regex Tester cho khớp mẫu hoặc JSON Formatter cho làm việc với file cấu hình.