Tiếng Việt

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

@reboot, @daily, @hourly: lịch trình biệt danh của cron đến từ đâu

· Lý lịch

cron bí danh lập kế hoạch

Bảy bí danh lịch trình được đặt tên mở rộng thành năm trường bên cạnh biểu tượng khởi động lại bị chặn
Hình minh họa vector ToolAcre gốc

Các tốc ký @ có thể đọc được, phổ biến và không phổ biến. Bài đăng này giải thích nội dung mỗi trường mở rộng, chúng đến từ đâu, trường hợp đặc biệt của @reboot và thời điểm viết năm trường thay thế.

@reboot bị từ chối vì công cụ xem trước thời gian theo lịch chứ không phải sự kiện khởi động

`@reboot` trông giống như các biểu mẫu at-sign khác nhưng không có phần mở rộng lịch năm trường trong ToolAcre. Trình phân tích cú pháp từ chối nó với lý do rõ ràng: không có lịch trình xem trước. Sự kiện khởi động phụ thuộc vào vòng đời của máy hoặc dịch vụ mà tuyến trình duyệt này không quan sát cũng như không kiểm soát.

Sự khác biệt này giữ cho danh sách lần chạy tiếp theo trở nên trung thực. Bí danh lịch có thể trở thành trường và ngày cụ thể. Bí danh khởi động lại không thể tạo ra năm ứng cử viên đồng hồ treo tường trong tương lai từ thời điểm hiện tại mà không tạo ra các lần khởi động lại trong tương lai. Do đó, việc từ chối sẽ chính xác hơn so với bản xem trước trống rỗng hoặc bịa đặt.

Các biệt hiệu và phần mở rộng của chúng — @hourly, @daily và @midnight, @weekly, @monthly, @yearly và @annual tương đương với 5 trường

Bảng được hỗ trợ là chính xác. `@hourly` trở thành `0 * * * *`; `@daily` và `@midnight` trở thành `0 0 * * *`; `@weekly` trở thành `0 0 * * 0`; `@monthly` trở thành `0 0 1 * *`; và `@yearly` cộng với `@annually` trở thành `0 0 1 1 *`.

Giao diện người dùng phân giải bí danh được chấp nhận trước khi sao chép giá trị vào năm hộp riêng lẻ. Phân tích cú pháp trả về biểu thức năm trường đã chuẩn hóa, các mô tả sử dụng biểu mẫu được phân tích cú pháp đó và kiểm tra lặp qua mọi bí danh. Do đó, việc mở rộng có thể kiểm tra được thay vì tốc ký ẩn.

Không có hành vi khởi động daemon hoặc khởi động hệ thống nào được mô hình hóa

Không có mã nào trong đường dẫn này nhận được các sự kiện khởi động hệ điều hành. Không có quy trình daemon, mã định danh khởi động hoặc biểu đồ phụ thuộc dịch vụ. Không thể thiết lập các câu lệnh của sổ làm việc về thời điểm `@reboot` chạy từ một trình phân tích cú pháp cố tình từ chối mã thông báo.

Nếu mục tiêu hỗ trợ biệt hiệu khởi động, hãy tham khảo định nghĩa vòng đời của mục tiêu đó và kiểm tra nó một cách an toàn. Không sử dụng lỗi của ToolAcre làm bằng chứng cho thấy tính năng này hoàn toàn không hợp lệ và không sử dụng sự hỗ trợ của triển khai khác làm bằng chứng cho thấy tuyến đường này sẽ xem trước nó.

Nguồn gốc bí danh và sự lan truyền triển khai chéo yêu cầu các nguồn lịch sử bên ngoài

Sổ làm việc gán các bí danh cho quá trình triển khai lịch sử và mô tả mức độ phổ biến của chúng. Kho lưu trữ không chứa nguồn lịch sử chính cho khiếu nại đó. Những gì nó chứng minh là hành vi ở thì hiện tại: bảy khóa trong `ALIASES`, tra cứu không phân biệt chữ hoa chữ thường và từ chối các tốc ký không xác định.

Thế là đủ cho tài liệu thực tế. Người đọc có thể biết chính xác biểu mẫu nào hoạt động ở đây và chúng mở rộng sang nội dung gì. Nguồn gốc có thể được thêm vào sau bằng nguồn lưu trữ; nó không nên được suy ra từ một tên cố định hoặc sự phổ biến của cú pháp tương tự ở nơi khác.

Ví dụ đã hoạt động: thay thế @daily bằng 0 0 * * * — và tại sao biểu mẫu rõ ràng cũng cho phép bạn dời thời gian nghỉ nửa đêm

Việc thay thế `@daily` bằng `0 0 * * *` sẽ hiển thị các trường thời gian. Việc thay đổi giờ từ 0 thành 4 sẽ tạo ra `0 4 * * *` mà công cụ mô tả là 04:00 mỗi ngày. Hình thức rõ ràng sẽ tốt hơn khi nửa đêm không phải là thời gian dự định trên tường.

Các hộp trường giúp việc điều chỉnh đó trở nên đơn giản và các điều khiển múi giờ đã chọn sẽ xem trước ngay lập tức. Biểu thức được sao chép không chứa bí danh sau khi mở rộng trong kết quả của trình phân tích cú pháp, nhưng văn bản gốc có thể vẫn còn trong hộp toàn bộ biểu thức cho đến khi một trường được thay đổi. Xem lại giá trị được sao chép thực tế trước khi triển khai.

Thứ tự thời gian khởi động và các phần phụ thuộc nằm ngoài trình tạo

Công việc khởi động thường phụ thuộc vào hệ thống tệp, mạng, thông tin xác thực hoặc các dịch vụ khác. ToolAcre không có mô hình phụ thuộc và không thể đánh giá mức độ sẵn sàng, độ trễ hoặc hành vi khởi động lại. Ngay cả khi nó chấp nhận `@reboot`, việc xác thực biểu thức sẽ không giải quyết được các câu hỏi vận hành đó.

Hãy coi việc thực thi tại thời điểm khởi động như một thiết kế vòng đời thay vì một lối tắt lịch. Ghi lại các điều kiện tiên quyết và xử lý lỗi trong môi trường đích. Trình tạo vẫn phù hợp với lịch trình năm trường định kỳ mà thời gian treo tường tiếp theo của nó thực sự có thể được tính toán.

Các lựa chọn thay thế người quản lý dịch vụ không được đánh giá ở đây

Sổ làm việc hướng tới các đơn vị dịch vụ hiện đại, nhưng kho lưu trữ này không xây dựng hoặc so sánh chúng. Không có cú pháp đơn vị, chỉ thị phụ thuộc hoặc kiểm tra khởi động nào nằm trong số các nguồn. Do đó, bài viết tránh đề xuất một sự thay thế chỉ dựa trên biệt hiệu không được hỗ trợ.

Chọn cơ chế vòng đời từ tài liệu mục tiêu và yêu cầu vận hành. Đóng góp của ToolAcre là ranh giới phủ định: `@reboot` nằm ngoài miền có thể xem trước của nó, trong khi bí danh lịch thông thường có năm trường tương đương trong suốt.

Bài học rút ra: biệt hiệu là đường cho các biểu thức cố định — và trình tạo cho phép bạn tạo phiên bản rõ ràng và đọc lại

Bí danh là nhãn ngắn gọn cho các biểu thức cố định trong quá trình triển khai này. Mở rộng chúng bất cứ khi nào việc xem xét hoặc tùy chỉnh mang lại lợi ích từ việc xem các vị trí. `@daily` không phải là phép thuật; bây giờ là nửa đêm ở tất cả các trường lịch không bị giới hạn trong vùng xem trước đã chọn.

Sử dụng danh sách được hỗ trợ, kiểm tra việc mở rộng và di chuyển khỏi nửa đêm khi thích hợp. Đối với các sự kiện khởi động, hãy dừng và chọn cơ chế dành riêng cho mục tiêu thay vì buộc trình kích hoạt vòng đời không thể xem trước vào trình tạo lịch. Ranh giới đó là có chủ ý và được thử nghiệm.