Unix 指南/說明/計劃作業
外觀
cron 是 UNIX/Linux 系統中的一個自動排程程式,它執行由系統、root 或單個使用者計劃的作業(指令碼)。排程資訊包含在 crontab 檔案中(每個使用者的檔案不同且獨立)。當 cron 守護程序啟動時,它會搜尋 crontab 檔案,這些檔案位於 /var/cron/tabs 目錄中,以使用者名稱命名。cron 守護程序每分鐘喚醒一次,並檢查 crontab 檔案中是否安排了任何要執行的作業。每次 cron 守護程序喚醒以檢查 crontab 檔案時,它還會檢查 /etc/crontab 檔案中檔案的時間戳是否修改,它會跟蹤並記錄這些修改。當你簡單地“touch”/etc/crontab 檔案時,cron 守護程序會捕獲它,並最終停止執行 crontab 中的計劃作業 - 這就是停止 cron 守護程序的方法。為了讓 cron 守護程序繼續執行計劃作業,你需要重新啟動它(重啟它)。
- 當用戶列在 /etc/cron.allow 檔案中時,將授予訪問許可權
- 否則,如果在 /etc/cron.deny 中找到了使用者名稱,則將拒絕訪問
- 如果這兩個檔案都不存在,那麼根據站點相關的配置引數,只有超級使用者可以訪問,或者所有使用者都可以訪問。
- 對於標準的 Debian 系統(包括 Ubuntu),當這兩個檔案都不存在時,所有使用者都將獲得訪問許可權。
- 對於 Fedora 系統,當這兩個檔案都不存在時,只有超級使用者將獲得訪問許可權。
- /var/spool/cron/username 檔案:每個單獨的使用者(由使用者名稱標識)控制他或她自己的獨立檔案
- /etc/crontab 檔案:這是**系統 crontab** 檔案。只有 root 才有許可權修改此檔案。
- /etc/cron.d 目錄。放置在此目錄中的每個檔案都與 /etc/crontab 格式相同。只有 root 才有許可權建立或修改此目錄中的檔案。
- /etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly 和 /etc/cron.monthly 目錄
- 這些目錄中的每個檔案都是一個 shell 指令碼,它在 /etc/crontab 檔案中指定的時間執行(預設情況下,分別在小時後的第一分鐘,每天凌晨 4:02,星期日凌晨 4:22,以及每月第一天凌晨 4:42)。
- 只有 root 才有許可權建立或修改這些目錄中的檔案。
* * * * * command to be executed - - - - | | | | | | | | | ----- day of week (0 - 6) (Sunday=0) | | | ------- month (1 - 12) | | --------- day of month (1 - 31) | ----------- hour (0 - 23) ------------ min (0 - 59)
- 任何欄位中的星號 (*) 表示該欄位的所有可能值。
- 可以使用值列表、值範圍和增量。示例
- 列表:日期可以表示為**列表 Mon,Wed,Fri**。
- 範圍:小時可以指定為**範圍 9–5**
- 增量:**0–31/3in** 第三個欄位表示每月的第三天
- ***/5** 表示每五分鐘
- 可以指定任何變數來微調作業將執行的環境。示例
- **MAILTO=otheruser** 變數可以使郵件傳送給除提交 cron 作業的使用者之外的使用者
- crontab −l : 列出您自己的個人 crontab 檔案的當前內容
- crontab −r : 刪除所有 crontab 條目
- crontab −e : 編輯 crontab 檔案
- ps -e |grep cron : 顯示 cron 守護程序是否正在執行的狀態。
- /usr/sbin/cron & : 啟動使用者 cron 守護程序。