Hiểu lịch cron trước khi nó chạy
Biểu thức cron là các chuỗi lịch nhỏ gọn được sử dụng bởi máy chủ, công việc CI, nền tảng tự động hóa và các kịch bản bảo trì. Chúng rất mạnh mẽ, nhưng một lỗi gõ nhỏ có thể thay đổi một tác vụ từ hàng ngày thành mỗi phút, hoặc từ ngày trong tuần thành cuối tuần.
Trình phân tích này giải thích biểu thức cron Unix 5 trường bằng ngôn ngữ dễ hiểu, phân tích từng trường và hiển thị các lần chạy sắp tới theo múi giờ bạn chọn trong công cụ.
Ngôn ngữ cron được hỗ trợ
Trình phân tích v1 hỗ trợ cron Unix tiêu chuẩn với năm trường:
minute hour day-of-month month day-of-week - Giá trị phút từ
0to59. - Giá trị giờ từ
0to23. - Giá trị ngày trong tháng từ
1to31. - Giá trị tháng từ
1to12, cùng với tên nhưJANandDEC. - Giá trị ngày trong tuần từ
0to7, cùng với tên nhưMONandFRI. Cả hai0and7nghĩa là Chủ nhật.
Nó hỗ trợ ký tự đại diện, danh sách bằng dấu phẩy, phạm vi và giá trị bước như */15 or 9-17/2.
Điều gì không được hỗ trợ một cách cố ý
Các biến thể cron không đồng nhất. Quartz, systemd timers, cloud schedulers, Kubernetes, GitHub Actions và các nền tảng lưu trữ có thể thêm trường riêng hoặc toán tử đặc biệt của chúng.
- Trường giây và trường năm không được phân tích như cron Unix.
- Các toán tử của Quartz như
?,L,W, và#được báo là không được hỗ trợ. - Các macro như
@dailyand@rebootkhông được mở rộng. - Văn bản lệnh sau một lịch không được coi là một phần của biểu thức.
Sử dụng trang này như một công cụ kiểm tra cho các lịch kiểu Unix. Trước khi thay đổi tự động hóa trong môi trường sản xuất, hãy xác nhận chính xác trình lập lịch sẽ chạy công việc.
Hành vi về múi giờ và giờ tiết kiệm ánh sáng ban ngày
Một biểu thức cron không bao gồm thông tin múi giờ tự nó. Cùng một biểu thức có thể chạy vào các thời điểm khác nhau tùy thuộc vào máy chủ sử dụng UTC, múi giờ hệ thống cục bộ hoặc cài đặt múi giờ riêng của trình lập lịch.
- Bản xem trước hiển thị các thời gian chạy theo múi giờ IANA đã chọn và theo UTC.
- Chuyển tiếp mùa xuân có thể bỏ qua các thời điểm đồng hồ địa phương không tồn tại.
- Chuyển đổi về mùa thu có thể lặp lại một thời điểm đồng hồ địa phương; hành vi của trình lập lịch có thể khác nhau.
- Nếu cả ngày trong tháng và ngày trong tuần đều bị giới hạn, cron Unix thường sử dụng ngữ nghĩa HOẶC.
Đối với các công việc quan trọng, hãy coi bản xem trước như công cụ lập kế hoạch và xác nhận hành vi trong chính trình lập lịch.
Câu hỏi thường gặp
Công cụ này có hỗ trợ cron của Quartz không?
Không. Trình phân tích chỉ hỗ trợ cron Unix 5 trường. Các trường giây kiểu Quartz, trường năm và các toán tử như ?, L, W, và # được hiển thị là không được hỗ trợ.
Biểu thức cron sử dụng múi giờ nào?
Biểu thức cron không mang thông tin múi giờ. Bản xem trước sử dụng múi giờ được chọn trong công cụ, nhưng máy chủ hoặc trình lập lịch của bạn có thể sử dụng một múi giờ khác.
Tại sao ngày trong tháng và ngày trong tuần đều có thể khớp?
Theo hành vi cron Unix phổ biến, khi cả hai trường đều bị giới hạn, một ngày có thể khớp nếu một trong hai trường khớp. Ví dụ, 0 0 1 * MON có thể chạy vào ngày đầu tiên của tháng và vào các thứ Hai.
Tôi có thể dán phần lệnh từ crontab không?
Chỉ dán năm trường lịch. Công cụ là một trình phân tích lịch, không phải trình phân tích crontab đầy đủ, vì vậy văn bản lệnh sau lịch không được diễn giải.