Tiếng Việt

Công cụ dành cho nhà phát triển · Trình tạo Crontab

Các trường crontab(5): POSIX chỉ định nội dung nào và tiện ích mở rộng Vixie là gì

· Lý lịch

cron tính di động xác nhận

Thẻ ngữ pháp năm cột với các mã thông báo được chấp nhận và ranh giới được bảo vệ
Hình minh họa vector ToolAcre gốc

Không phải mọi tính năng cron đều là tiêu chuẩn. Bài đăng này tách biệt những gì đặc tả crontab POSIX yêu cầu với các tiện ích mở rộng (các bước, tên, biệt hiệu) mà Vixie cron đã thêm và hầu hết các hệ thống Linux đều thừa nhận.

hợp lệ ToolAcre biểu thức vẫn có thể không được hỗ trợ bởi bộ lập lịch khác

A schedule that passes ToolAcre has satisfied this parser, not every cron implementation. Tính di động bắt đầu với tuyên bố khiêm tốn đó. The route accepts exactly five fields and a defined token grammar. A target appliance, service or framework may accept less, more or something structurally different.

Hãy coi kết quả trong trình duyệt là một phần bằng chứng gồm biểu thức, mô tả, cảnh báo và vùng xem trước. Trước khi triển khai, hãy đối chiếu tài liệu của hệ thống đích và chạy một phép thử vô hại. Việc xác thực chỉ trở nên nguy hiểm khi tín hiệu hợp lệ cục bộ bị xem như bảo đảm tương thích tuyệt đối.

Kho lưu trữ không thiết lập những gì POSIX yêu cầu

Sổ làm việc đã tách các yêu cầu POSIX khỏi các tiện ích mở rộng nhưng không có thông số POSIX nào xuất hiện trong các nguồn kho lưu trữ. ToolAcre’s behavior cannot prove which features a standard mandates. This section therefore describes implemented syntax without assigning it to a standards body.

Phạm vi số được triển khai là 0–59 phút, 0–23 giờ, 1–31 ngày trong tháng, 1–12 tháng và 0–7 ngày trong tuần. Các ký tự đại diện, giá trị đơn, phạm vi bao gồm, danh sách dấu phẩy, bước ký tự đại diện, bước phạm vi và giá trị bắt đầu trần với một bước đều được phân tích cú pháp và kiểm tra.

Tên, bước, chủ nhật 7 và bí danh được triển khai ở đây mà không có xác nhận quyền sở hữu lịch sử tiêu chuẩn

Month names JAN through DEC and weekday names SUN through SAT are case-insensitive. Tên có thể xuất hiện một mình, trong danh sách và trong phạm vi. Weekday 7 is accepted as Sunday and normalized to 0. Those are observable properties of `parseField`, regardless of how another implementation classifies them.

Bảng bí danh mở rộng `@yearly`, `@annually`, `@monthly`, `@weekly`, `@daily`, `@midnight` và `@hourly`. `@reboot` is deliberately refused because it has no calendar schedule to preview. Unknown at-sign words receive an error naming the supported list.

Trình phân tích này không hỗ trợ phép gán biến môi trường

Bài tập môi trường không phải là một phần của ngữ pháp biểu thức này. Hộp đầu vào mong đợi một lịch trình và `parseCron` chia nó thành năm phần sau khi phân giải bí danh được hỗ trợ. MỘT `KEY=value` đường dây không thể được kiểm tra khả năng mở rộng, trích dẫn hoặc tính di động thông qua tuyến đường này.

Sự thiếu sót đó ngăn cản việc tuyên bố tiêu chuẩn sai. A complete crontab tệp can contain constructs that an expression-only tool never sees. Kiểm tra chúng một cách riêng biệt với mục tiêu. ToolAcre’s precise field errors should not be repurposed as judgments about unrelated lines in a larger tệp.

Kiểm tra ngữ pháp mục tiêu và sử dụng lịch kiểm tra vô hại

Việc kiểm tra mục tiêu nên bắt đầu bằng số lượng trường và toán tử. Xác nhận xem các tên, Chủ nhật 7, các bước gạch chéo và bí danh tại dấu có được chấp nhận hay không. Sau đó cài đặt một hành động vô hại có thể quan sát được trong thời gian ngắn, loại bỏ nó sau khi thu thập được bằng chứng và so sánh kết quả mục tiêu với biểu thức dự định.

Không kiểm tra tính di động bằng một lệnh nhạy cảm hoặc bằng cách chờ đợi một ngày hiếm hoi hàng năm. Chọn thăm dò an toàn nhỏ nhất để phân biệt hỗ trợ ngữ pháp. ToolAcre có thể giúp xây dựng lịch trình đó và giải thích nó, trong khi lần chạy mục tiêu thiết lập phần mà trình duyệt không thể biết.

Ví dụ hoạt động: biểu mẫu bước và danh sách rõ ràng theo ngữ pháp của ToolAcre

Cứ mỗi năm phút, ToolAcre chấp nhận `*/5 * * * *`. Nó cũng chấp nhận danh sách phút rõ ràng `0,5,10,15,20,25,30,35,40,45,50,55 * * * *`. Phân tích cú pháp mở rộng cả hai trường phút thành mười hai giá trị giống nhau, do đó, các ứng cử viên trong lần chạy tiếp theo của chúng khớp với cùng một thời điểm và vùng bắt đầu.

Danh sách rõ ràng có thể đóng vai trò là ứng cử viên dự phòng khi mục tiêu thiếu cú ​​pháp bước, nhưng kho lưu trữ này không thể chứng nhận hỗ trợ danh sách của mục tiêu đó. So sánh cả hai biểu mẫu trong ToolAcre để biết sự tương đương về mặt ngữ nghĩa, sau đó xác minh bất kỳ biểu mẫu nào của tài liệu đích. Sự tương đương ở đây không phải là bằng chứng về tính di động ở đó.

Cú pháp sáu trường bị từ chối; ngữ nghĩa bên ngoài của nó không được ghi lại ở đây

Trường thứ sáu không được chấp nhận. Lỗi cho thấy kiểu giây ở đầu thuộc về kiểu đầu vào Quartz hoặc giống systemd, nhưng trình phân tích cú pháp không triển khai các ngữ pháp đó. Nó không có trường năm và không có toán tử `?`, `L`, `W` hoặc `#`.

Đếm các trường trước khi thử dịch. Nếu cú ​​pháp không được hỗ trợ mang ý nghĩa lập kế hoạch, việc viết lại năm trường rõ ràng có thể bị mất. Sử dụng tài liệu và kiểm tra cho bộ lập lịch nguồn, sau đó chỉ thể hiện các yêu cầu được thể hiện bằng ngữ pháp mục tiêu của ToolAcre. Bất cứ điều gì khác nên vẫn là một sự không tương thích rõ ràng.

Bài học rút ra: biết tính năng nào là tiện ích mở rộng — và sử dụng trình tạo để xây dựng và kiểm tra cả hai biểu mẫu khi tính di động quan trọng

Tính di động là một sự so sánh, không phải là một nhãn được nhúng trong một biểu thức. ToolAcre cung cấp một mặt đã được thử nghiệm kỹ lưỡng: năm vị trí, ranh giới số, tên được chọn, phạm vi có thể tổng hợp/lists/steps và bảy bí danh. Nó cũng đưa ra những lời từ chối rõ ràng đối với các hình thức không đúng định dạng hoặc nước ngoài.

Hãy dùng hợp đồng đó để lý luận một cách chính xác, sau đó xác minh đối phương. Một danh sách rõ ràng và một bước có thể bằng nhau trong trình phân tích cú pháp này trong khi chỉ một bước hoạt động ở nơi khác. Báo cáo ranh giới phương ngữ có tính khả thi hơn so với việc viện dẫn một tiêu chuẩn mà bài viết chưa thực sự trích dẫn.