crontab 定時任務配置是 Linux/Unix 系統中用于自動、周期性執行指定命令或腳本的工具,相當于系統的 “定時鬧鐘”。它可以讓系統在預設的時間(如每天凌晨、每周一、每月 1 號等)自動完成重復性工作,無需人工干預。
自動化運維
- 定期備份數據(如每天凌晨 2 點備份數據庫)。
- 清理日志文件(如每周日刪除一周前的日志,避免磁盤占滿)。
- 同步系統時間(如每天早上 7 點與 NTP 服務器校準時間)。
周期性任務處理
- 定時運行腳本處理數據(如每小時統計一次網站訪問量)。
- 發送定時通知(如每月 1 號發送服務器運行報告郵件)。
減少人工操作
- 替代需要重復執行的命令,避免遺漏或人為錯誤(比如凌晨 3 點手動備份容易忘記)。
工作原理
- crond 服務:系統后臺運行的一個守護進程(類似 “服務員”),負責監控并執行 crontab 中定義的任務。
- crontab 文件:用戶通過?
crontab -e
?命令編輯的配置文件,里面記錄了 “何時執行什么任務” 的規則(格式為?分 時 日 月 星期 命令
)。 - 執行流程:crond 服務每分鐘檢查一次 crontab 文件,當時間匹配時,自動執行對應的命令或腳本。
crontab -l(查看)
30 7 * * 1-5 /usr/sbin/ntpdate 10.121.106.94 >>/opt/ntplog 2>&1
0 0 15 * * ?sh /root/cleanDsLog.sh
?crontab -e(編輯)
30 7 * * 1-5 /usr/sbin/ntpdate 10.121.106.94 >>/opt/ntplog 2>&1
0 0 15 * * ?sh /root/cleanDsLog.sh
- 第一條任務:每周一至周五 7:30,通過 NTP 服務器
10.121.106.94
同步系統時間,并記錄日志到/opt/ntplog
。 - 第二條任務:每月 15 號 0 點,執行日志清理腳本
/root/cleanDsLog.sh
,用于定期維護系統日志(避免磁盤占滿)。