Tạo biểu thức cron

Viết lịch cron và xem chính xác khi nào nó chạy.

0-59
0-23
1-31
1-12 hoặc JAN-DEC
0-6 hoặc SUN-SAT (7 cũng là Chủ nhật)
At 09:00 AM, Monday through Friday

10 lần chạy tiếp theo

    Bảng tra cú pháp cron
    TrườngGiá trị cho phép
    Phút0-59
    Giờ0-23
    Ngày trong tháng1-31
    Tháng1-12 hoặc JAN-DEC
    Ngày trong tuần0-6 hoặc SUN-SAT (7 cũng là Chủ nhật)
    Ký hiệuÝ nghĩa
    *Mọi giá trị
    ,Danh sách giá trị, ví dụ 1,15
    -Một khoảng, ví dụ 1-5
    /Một bước nhảy, ví dụ */15 nghĩa là mỗi 15 giá trị

    Chạy ngay trên trình duyệt. Không có gì bạn nhập vào bị gửi đi đâu cả.

    Cách viết biểu thức cron

    1. Chọn một mẫu có sẵn, hoặc gõ biểu thức gồm năm trường.
    2. Tinh chỉnh từng trường riêng trong các ô bên dưới.
    3. Xem giải thích và các lần chạy tiếp theo, rồi sao chép biểu thức.

    Các lịch cron thường dùng

    Lịch chạyBiểu thứcÝ nghĩa
    Mỗi phút* * * * *Chạy 60 lần mỗi giờ
    Mỗi 5 phút*/5 * * * *Vào phút :00, :05, :10 và cứ thế
    Mỗi đêm lúc 2 giờ sáng0 2 * * *Một lần mỗi 24 giờ
    Ngày thường lúc 9 giờ sáng0 9 * * 1-5Chỉ từ thứ Hai đến thứ Sáu
    Ngày 1 mỗi tháng0 0 1 * *Nửa đêm ngày 1
    Mỗi 6 giờ0 */6 * * *Nửa đêm, 6 giờ sáng, giữa trưa, 6 giờ chiều

    Cron khác nhau thế nào giữa các hệ thống

    Định dạng 5 trường bên dưới là định dạng mà công cụ này tạo ra, và cũng là định dạng mà hầu hết trình lập lịch job dùng trực tiếp.

    Hệ thốngSố trườngGhi chú
    Cron / crontab chuẩn5Phút, giờ, ngày trong tháng, tháng, ngày trong tuần
    Kubernetes CronJob5Cùng định dạng, viết dưới dạng chuỗi trong YAML
    GitHub Actions5Đặt trong on.schedule.cron, luôn chạy theo UTC
    Quartz (Java)6 hoặc 7Thêm một trường giây trước trường phút
    AWS EventBridge6Thêm một trường năm và dùng ? cho ngày trong tháng hoặc ngày trong tuần

    Sao chép biểu thức từ đây vào lịch Quartz hoặc AWS rồi thêm trường phụ mà nó yêu cầu; vị trí của phút, giờ, ngày, tháng và ngày trong tuần vẫn giữ nguyên.

    Mẹo viết lịch cron

    • Ưu tiên dùng bước nhảy thay vì liệt kê dài: */15 * * * * ngắn gọn và rõ ràng hơn 0,15,30,45 * * * *.
    • Đặt cả ngày trong tháng và ngày trong tuần giới hạn ít hơn bạn tưởng: cron chuẩn chạy job khi một trong hai khớp, chứ không phải chỉ khi cả hai đều khớp.
    • Hãy kiểm tra lịch ở đây trước khi dán vào máy chủ. Chỉ cần sai một trường có thể biến một job chạy hằng ngày thành job chạy mỗi phút.
    • Máy chủ thường chạy cron theo UTC. Danh sách lần chạy tiếp theo ở trên hiển thị theo múi giờ của chính bạn, nên hãy quy đổi trước khi cho rằng một job đã chạy đúng giờ.

    Câu hỏi thường gặp về Tạo biểu thức cron

    Năm trường trong biểu thức cron nghĩa là gì?

    Từ trái sang phải: phút (0-59), giờ (0-23), ngày trong tháng (1-31), tháng (1-12) và ngày trong tuần (0-6, trong đó 0 là Chủ nhật). Dấu hoa thị nghĩa là mọi giá trị, nên * * * * * chạy mỗi phút.

    Làm sao để chạy một cron job mỗi 5 phút?

    Dùng */5 * * * *. /5 nghĩa là mỗi 5 giá trị một lần, nên nó chạy ở phút 0, 5, 10 và cứ thế, ở mọi giờ mỗi ngày.

    Điều gì xảy ra nếu tôi đặt cả ngày trong tháng và ngày trong tuần?

    Cron chuẩn sẽ chạy job khi một trong hai điều kiện khớp. 0 0 1 * 1 chạy lúc nửa đêm vào ngày 1 mỗi tháng và cũng chạy vào mỗi thứ Hai.

    Cron dùng múi giờ nào?

    Múi giờ của máy chủ chạy nó, thường là UTC. Các lần chạy trên trang này hiển thị theo múi giờ của chính bạn, nên hãy quy đổi nếu máy chủ của bạn đặt múi giờ khác.

    Định dạng này có dùng được cho Kubernetes, GitHub Actions, Quartz hay AWS không?

    Kubernetes CronJob và lịch của GitHub Actions dùng cùng định dạng 5 trường này. Quartz thêm một trường giây, còn AWS EventBridge thêm một trường năm và dùng ? ở một trong hai trường ngày, nên cả hai cần điều chỉnh.

    Làm sao để chạy job chỉ vào ngày thường hoặc chỉ vào cuối tuần?

    Đặt ngày trong tuần là 1-5 cho thứ Hai đến thứ Sáu, hoặc 0,6 cho thứ Bảy và Chủ nhật. Giữ ngày trong tháng và tháng là * để không giới hạn gì thêm.

    Các cách viết tắt như @daily và @hourly nghĩa là gì?

    Đó là các macro mà một số cron chấp nhận thay cho năm trường. @hourly là 0 * * * *, @daily là 0 0 * * *, @weekly là 0 0 * * 0, @monthly là 0 0 1 * * và @yearly là 0 0 1 1 *. Gõ bất kỳ cái nào vào ô biểu thức ở đây và nó sẽ tự động được mở rộng.

    Công cụ liên quan