開發者工具·Crontab 產生器
五個 crontab 欄位如何運作:分鐘、小時、日、月、工作日
· 工作原理
計劃任務 調度 開發人員工作流程
每個 cron 計劃都有五個位置字段,順序永遠不會改變。這篇文章解釋了每個欄位的範圍、週日的特殊情況,以及一行如何成為一組匹配的分鐘。
備份必須在每晚 02:30 運行 — 並且您不知道如何填寫五顆星
您需要在每晚 02:30 進行備份,但要不斷混淆五顆星中哪一顆擁有該時間。 Cron 是位置性的:錯誤列中的數字會產生不同的計劃,但表面上看起來有效。從作業必須運行的時間、機器的時區以及 crontab 的所有者開始;然後才填寫欄位。ToolAcre可以解析和描述表達式,但它不會安裝作業或執行備份命令。
位置字段,固定顺序 - 分钟、小时、月份、月份、星期几,然后是命令
使用者 crontab 行包含分鐘、小時、月份、月份、星期幾,然後是指令。在 30 2 * * * backup.sh 中,30 是分鐘,2 是小時:在該 cron 環境的時區下每天的 02:30。該命令不是第六時間字段。系統範圍的 /etc/crontab 可能在命令之前包含一個使用者字段,這就是為什麼盲目地將系統條目複製到您的個人 crontab 中可能會執行意外命令的原因。
每个字段的范围 - 0–59、0–23、1–31、1–12 和 0–7,其中 0 和 7 在大多数 cron 中都表示星期日
在 Vixie 風格約定 ToolAcre 模型中,分鐘接受 0-59、小時 0-23、月份 1-31、月份 1-12 和工作日 0-7;0和7表示星期日。星號表示該欄位中的所有值。範圍和逗號分隔清單可以限制值,但欄位的數值範圍仍然適用。小時位置的 25 點不是深夜時間表:它是無效的,應該報告,而不是打包到第二天。
匹配的工作原理 — cron 每分鐘喚醒一次,如果時間字段匹配則運行一行(兩天字段除外)
Cron 每分鐘檢查匹配欄位。分鐘、小時和月份都需要配對。 Vixie cron 中的兩天欄位有一個特殊規則:當月份和星期幾都受到限制時,其中任何一個的匹配都可以觸發作業,而不一定是兩者都觸發。因此 0 0 13 * 5 表示一個月的第 13 號或每個星期五,而不僅僅是第 13 號星期五。在日間位置使用通配符時,夜間範例的行為符合預期。該工具的解釋性輸出使該選擇在安裝前可見。
範例:30 2 * * * backup.sh — 大聲朗讀,然後從頭開始寫“工作日 08:15”
大聲朗讀 30 2 * * * backup.sh 為「每天 02:30 執行 backup.sh」。對於工作日 08:15,請輸入第 15 分鐘、第 8 小時、不受限制的日/月以及工作日 1–5: 15 8 * * 1-5。僅將五個計劃欄位貼到 Crontab 產生器中,並檢查其描述和下次運行清單;之後使用您自己的 crontab 編輯器安裝該命令。對於在夏令時更改附近運行的備份,請驗證實際區域中的下一次運行時間戳,而不是假設每個本地 02:30 都存在。
月份和工作日的名稱,包括支援的名稱範圍
許多 cron 方言接受三個字母的名稱,例如 JAN 或 MON,而不是數字。名稱可以使人工維護的時間表更加清晰,但使用 0/7 表示星期日仍然很常見,其他 cron 實作可能有不同的擴展名。 ToolAcre 可識別常見的月份和工作日名稱及範圍,例如 JAN-MAR 和 MON-FRI;它的解析器接受 15 8 * JAN-MAR MON-FRI。另一個 cron 實作或雲端調度程式可能使用不同數量的欄位或擴展,因此在安裝該行之前請參考該環境自己的語法。
本概述未完全涵蓋的內容:清單、步驟和執行環境
本介紹解釋了 Vixie 日字段 OR 規則,但沒有探討其與清單和步驟的複雜組合、執行命令的 shell/環境或夏令時行為;每個都可以更改實際任務是否運行。驗證器可以描述計劃,但不能保證 backup.sh 存在、具有權限或寫入可恢復備份。在依賴生產 cron 條目之前測試備份和還原。
重點:五個字段,一種語法 - Crontab 生成器建立表達式並向您解釋它
五個位置構成一種語法。 Crontab 產生器會讀取您建議的計劃,命名每個欄位並顯示所選區域中即將執行的操作,而無需在系統上安裝任何內容。輸入夜間和工作日範例,將工具的內容與您的預期進行比較,然後將命令和時區決策與作業的操作文件一起保留。