Tiếng Việt

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

Từ phiên bản 7 Unix đến cron Vixie: lịch sử ngắn gọn của cron

· Lý lịch

cron lịch sử software-evidence

Biểu thức năm trường bên cạnh hộp lưu trữ đã đóng đánh dấu ranh giới bằng chứng
Hình minh họa vector ToolAcre gốc

cron là một trong những daemon lâu đời nhất vẫn được sử dụng hàng ngày. Bài đăng này tiếp nối nó từ một tệp toàn hệ thống duy nhất trong Unix những năm 1970 thông qua crontab của mỗi người dùng cho đến bản viết lại của Paul Vixie mà hầu hết các hệ thống Linux vẫn bắt nguồn từ đó.

Kho lưu trữ thể hiện mô hình năm trường hiện tại, không phải tính liên tục trong lịch sử của cron

ToolAcre mô phỏng lịch trình năm trường quen thuộc trong JavaScript hiện tại. Thực tế đó không chứng minh được một đường truyền không bị gián đoạn từ một daemon cụ thể của những năm 1970 tới mọi máy chủ hiện đại. Văn phạm thực hành và tường thuật lịch sử là những sản phẩm bằng chứng khác nhau và kho lưu trữ chỉ chứa văn phạm có chiều sâu.

Các nhận xét nguồn gọi quy tắc trường ngày theo kiểu Vixie, nhưng các nhận xét không phải là kho lưu trữ các bản phát hành Unix. Do đó, bài viết này chống lại việc biến một giao diện có vẻ ổn định thành một tuyên bố về lý do tại sao cron tồn tại hoặc cơ sở mã hóa mà daemon của người đọc bắt nguồn từ đâu. Hành vi có thể chính xác mà không cần có nguồn gốc được phát minh.

Chi tiết triển khai phiên bản 7 yêu cầu nguồn chính bên ngoài

Phần Phiên bản 7 của sổ làm việc có tên một tệp và chu kỳ đọc một lần mỗi phút. Không có nguồn 7 phiên bản, hướng dẫn sử dụng hoặc bản quét nào được lưu trữ trong số các nguồn bài viết. Giải pháp từng phút của chính ToolAcre không thể xác minh độc lập các chi tiết triển khai lịch sử đó.

Lịch sử có trách nhiệm sẽ trích dẫn sổ tay chính hoặc cây nguồn và phân biệt ngày xuất bản với hồi ức sau này. Cho đến khi nghiên cứu đó tồn tại, phần này sẽ ghi lại sự thiếu sót. Người đọc vẫn có thể tìm hiểu năm trường từ mã đã được kiểm tra mà không nhận được một câu chuyện có nguồn gốc không có nguồn gốc được trình bày như một sự thật.

Các tính năng chính sách và dòng hệ thống V không được chứng minh ở đây

Các tuyên bố về việc Hệ thống V thêm crontab, lệnh hoặc danh sách chính sách cho mỗi người dùng cũng yêu cầu tài liệu bên ngoài. Mã trình duyệt không có danh sách cho phép hoặc từ chối và không có trình quản lý crontab người dùng. Thuật ngữ tương tự trong các hệ thống sau này không thể xác định được thời điểm một tính năng xuất hiện lần đầu tiên.

Việc sửa đổi này tuân theo hợp đồng tác giả: dàn ý là một bản tóm tắt, không phải là nguồn. Thay vì âm thầm trao đổi bằng một câu sâu rộng khác, bài báo cho biết cần phải có bằng chứng gì. Phạm vi lịch sử có thể được mở rộng sau này khi tài liệu chính được thêm vào `sources` và đọc trực tiếp.

Ghi công của Vixie xuất hiện trong các nhận xét nhưng ngày và bản phát hành không có nguồn gốc

Việc triển khai đặt tên cho Vixie cron khi giải thích hành vi OR và từ chối các kiểu lập lịch sáu trường. Nó không chứa các bản lưu trữ phát hành, trích dẫn 1987 hoặc nhật ký thay đổi phiên bản 3.0. Do đó, những ngày và cột mốc đó không được lặp lại trong sổ làm việc.

Xác nhận quyền sở hữu ở cấp độ mã hẹp hơn: khi cả hai trường ngày đều bị hạn chế, ToolAcre trả về `monthMatch || weekMatch`, cảnh báo người dùng và nói “hoặc” trong mô tả của nó. Hành vi đó hoàn toàn có thể kiểm tra được. Ghi công ngoài nhận xét vẫn là một nhiệm vụ nghiên cứu chứ không phải là phần bổ sung cho phần nền.

Việc triển khai con cháu nằm ngoài cơ sở mã này

Các tên như cronie, dcron, fcron, bcron và BusyBox xác định các dự án bên ngoài, không có dự án nào được nhập hoặc thử nghiệm ở đây. ToolAcre không thể nói máy chủ sử dụng cái nào, liệu máy chủ có chấp nhận mọi bí danh hay cách xử lý chuyển đổi thời gian. Việc liệt kê con cháu có nghĩa là nghiên cứu so sánh đã không xảy ra.

Khi tính di động có vấn đề, hãy trực tiếp kiểm tra việc thực hiện mục tiêu. Số lượng trường, tên và toán tử được chấp nhận của nó là dữ kiện hoạt động. Phả hệ có thể giúp giải thích những khác biệt, nhưng nó không bao giờ được thay thế cho sổ tay hướng dẫn hiện tại của mục tiêu và một bài kiểm tra xác nhận vô hại.

Những gì còn lại trong ToolAcre: năm trường được sắp xếp và một ngữ pháp đã được kiểm tra

Những gì kho lưu trữ thiết lập là đáng kể. Các trường được sắp xếp theo thứ tự phút, giờ, ngày trong tháng, tháng và ngày trong tuần. Phạm vi số rõ ràng; tên tháng và ngày trong tuần được chấp nhận không phân biệt chữ hoa chữ thường; Chủ nhật 7 bình thường hóa thành 0; phạm vi, danh sách và các bước mở rộng thành các giá trị duy nhất được sắp xếp.

Trình phân tích cú pháp cũng hỗ trợ bảy bí danh được đặt tên ngoại trừ `@reboot`, tạo ra các lỗi cụ thể, cảnh báo về các ngày không thể và trường ngày ORed, hiển thị tiếng Anh và tính toán thời gian đồng hồ treo tường sắp tới trong vùng đã chọn. Hợp đồng đương đại đó xứng đáng có tài liệu chính xác độc lập với vật trang trí lịch sử.

anacron và systemd vẫn ở bên ngoài trình tạo

Không có cấu hình anacron hoặc trình phân tích lịch systemd nào xuất hiện trong công cụ. Các hệ thống này không thể được định vị là những hệ thống kế thừa mang tính tiến hóa hoặc các hệ thống thay thế chỉ dựa trên bằng chứng kho lưu trữ. Ngay cả khi được so sánh phổ biến, hành vi ghi nhật ký, phụ thuộc và chạy sai của chúng yêu cầu các nguồn riêng biệt.

Việc ToolAcre từ chối sáu trường và toán tử không được hỗ trợ không phải là phán quyết về các hệ thống đó. Nó chỉ đơn giản là bảo vệ một ngữ pháp. Các bài viết về các lựa chọn thay thế nên bắt đầu bằng cách triển khai và tài liệu của chúng, chứ không phải suy ra các tính năng từ hình dạng của biểu thức crontab.

Bài học rút ra: sử dụng bằng chứng triển khai cho hành vi và các nguồn chính cho lịch sử

Lịch sử kỹ thuật cần có nguyên tắc tương tự như tài liệu mã: các xác nhận quyền sở hữu phải được truy nguyên tới tài liệu thực sự nói về chúng. Câu chuyện đáng tin cậy ở đây là hành vi hiện tại của người tạo và sự vắng mặt rõ ràng của bằng chứng lưu trữ về niên đại của sổ làm việc.

Sử dụng ToolAcre để xây dựng và kiểm tra cú pháp năm trường mà các bài kiểm tra của nó bao gồm. Nếu xuất bản lịch sử sau này, hãy thêm nguồn chính, xác minh ngày tháng và phân biệt các triển khai có liên quan. Việc bỏ qua một cột mốc không được hỗ trợ bây giờ còn chính xác hơn một câu chuyện trôi chảy mà người đọc không thể nghe được.