開發者工具 · Crontab 產生器
從版本 7 Unix 到 Vixie cron:cron 的簡史
· 背景
規劃任務 歷史 軟體證據
cron 是仍在日常使用的最古老的守護程序之一。這篇文章講述了從 1970 年代 Unix 中的單一系統範圍檔案到每個使用者 crontab,再到大多數 Linux 系統仍然源自 Paul Vixie 的重寫。
儲存庫展示了目前的五欄位模型,而不是 cron 的歷史連續性
ToolAcre 在目前 JavaScript 中模擬了熟悉的五欄位時間表。這一事實並不能證明從特定的 20 世紀 70 年代守護進程到每個現代主機都有不間斷的線路。工作語法和歷史敘述是不同的證據產品,儲存庫僅包含前者的深度。
原始碼註解將日場規則稱為 Vixie 風格,但註解不是 Unix 版本的存檔。因此,本文拒絕將一個看起來穩定的介面變成關於為什麼 cron 倖存下來或讀者的守護程序源自於哪個程式碼庫的宣告。行為可以是精確的,無需發明出處。
版本 7 實作細節需要外部主要來源
工作簿的版本 7 部分命名為一個檔案和每分鐘一次的讀取週期。文章來源中不儲存版本 7 來源、手冊或掃描。 ToolAcre 自己的分鐘決議無法獨立驗證這些歷史實施細節。
可靠的歷史記錄會引用主要手冊或原始碼樹,並將出版日期與後來的回憶區分開來。在該研究存在之前,該部分記錄了遺漏。讀者仍然可以從經過測試的程式碼中了解這五個領域,而無需收到作為事實呈現的被動起源故事。
System V 沿襲和策略功能未在此證明
關於 System V 新增每個使用者 crontab、指令或原則清單的宣告同樣需要外部檔案。瀏覽器程式碼沒有允許或拒絕列表,也沒有使用者 crontab 管理器。後來的系統中類似的術語無法確定某個功能首次出現的時間。
此更正遵循創作合約:大綱是摘要,而不是來源。文章並沒有默默地換上另一個籠統的句子,而是指出了需要哪些證據。當主要材料添加到 `sources` 並直接讀取時,可以稍後擴展歷史覆蓋範圍。
Vixie 歸屬出現在評論中,但未提供日期和發布信息
此實作在解釋 OR 行為時命名為 Vixie cron,並拒絕六欄位調度程序樣式。它不包含發布檔案、1987 引用或版本 3.0 變更日誌。因此,工作簿中不會重複這些日期和里程碑。
程式碼層級宣告範圍較窄:當兩個日期欄位都受到限制時,ToolAcre 傳回 `monthMatch || weekMatch`,警告使用者並在其描述中說「或」。該行為是完全可測試的。評論之外的歸因仍然是一項研究任務,而不是背景部分的填充物。
後代實作在此程式碼庫之外
cronie、dcron、fcron、bcron 和 BusyBox 等名稱標識外部項目,此處均未導入或測試。 ToolAcre 無法說明主機使用哪一個、它是否接受每個別名或它如何處理時間轉換。列出後代將意味著沒有進行比較研究。
當可移植性很重要時,直接檢查目標實現。它接受的欄位數、名稱和運算符都是可操作的事實。譜係可以幫助解釋差異,但它永遠不應該取代目標的當前手冊和無害的驗證測試。
ToolAcre 中保留的內容:五個有序欄位和經過測試的語法
儲存庫所建立的內容非常重要。欄位按分鐘、小時、月份、月份和星期幾排序。數字範圍是明確的;接受月份和工作日名稱,不區分大小寫;星期日 7 標準化為 0;範圍、列表和步驟擴展為排序的唯一值。
解析器還支援除 `@reboot` 之外的七個命名別名,產生特定錯誤,警告不可能的日期和 ORed 日期欄位,呈現英語併計算選定區域中即將到來的掛鐘時間。這份當代合約值得有獨立於歷史裝飾的準確記錄。
anacron 和 systemd 保留在產生器之外
工具中沒有出現 anacron 設定或 systemd 日曆解析器。僅憑儲存庫證據,這些系統不能被定位為進化的繼承者或替代品。即使進行共同比較,它們的錯過執行、依賴性和日誌記錄行為也需要單獨的來源。
ToolAcre 拒絕六個欄位和不支援的運算子並不是對這些系統的判斷。它只是保護一種語法。關於替代方案的文章應該從它們的實作和檔案開始,而不是從 crontab 表達式的形式推斷函數。
重點:使用行為的實施證據和歷史的主要來源
技術歷史需要與程式碼檔案相同的紀律:宣告應該可追溯到實際表述它們的材料。這裡可信的故事是產生器當前的行為以及工作簿年表的檔案證據的明確缺乏。
使用 ToolAcre 建置和檢查其測試涵蓋的五欄位語法。如果稍後發布歷史記錄,請新增主要來源、驗證日期並區分相關實作。現在省略一個不受支援的里程碑比讀者無法審核的流暢敘述更準確。