實作背景與觀念說明
自動化監控腳本若需人工手動觸發,仍無法達成 24 小時不間斷的伺服器營運管理。透過 Linux 內建的 Cron 排程服務與 crontab 指令,能彈性規劃週期性任務,使系統於背景自動按時執行特定巡檢腳本與日誌備份,實現完全無人值守的 DevOps 維運流程。
核心語法解析與設定機制
Crontab 時間格式:採用五個欄位(分 時 日 月 週)來精準定義執行週期。例如 * * * * * 代表每分鐘觸發一次,而 0 3 * * * 則代表每日凌晨三點觸發。
絕對路徑規範:因 Cron 在非互動式 Shell 中運作,預設不載入使用者的環境變數(如 $PATH),故指定腳本與輸出路徑時,必須使用 realpath 查得之絕對路徑(如 /home/ubuntu/disk_alarm.sh),避免因路徑錯誤導致執行失敗。
標準輸出與錯誤重導向:運用 >> 累加寫入日誌檔,並搭配 2>&1 將標準錯誤輸出(stderr)同步轉發至標準輸出(stdout),確保巡檢歷史與異常錯誤資訊完整保留於 Log 檔案中。
Crontab 常用指令:
crontab -e:編輯當前使用者的排程任務。
crontab -l:列出當前使用者的所有排程任務。
crontab -r:刪除當前使用者的所有排程任務。
Crontab 時間格式(五星陣):
*****要執行的指令或腳本路徑
1.星期幾 (0 - 6,0 代表週日)
2.月份 (1 - 12)
3.日期 (1 - 31)
4.小時 (0 - 23)
5.分鐘 (0 - 59)
實作