* * * * * 執行命令 分 時 日 月 周 # 常用範例 */5 * * * * 每 5 分鐘 0 * * * * 每小時整點 0 0 * * * 每天午夜 0 0 * * 0 每週日午夜 0 0 1 * * 每月 1 號午夜 0 0 1 1 * 每年 1 月 1 號午夜
| 指令 | 功能 |
|---|---|
| crontab -e | 編輯當前用戶 crontab (vim) |
| crontab -l | 列出當前用戶 crontab |
| crontab -r | 刪除當前用戶 crontab |
| crontab -u user -e | root 編輯指定用戶 crontab |
| crontab file | 從檔案載入 crontab |
# 格式多一欄「使用者」 分 時 日 月 周 user command 0 7 * * * root mpg123 ~/wakeup.mp3 0 4 * * 0 root emerge --sync && emerge -uD world 0 2 1 * * root rm -f /tmp/* 0 8 6 5 * root mail robin < /home/galeki/happy.txt
/etc/crontab 無需 crontab 指令,cron daemon 會自動讀取。/etc/cron.d/ 目錄下放置獨立檔案同樣生效(建議生產環境用此方式模組化管理)。*:所有值,:列舉 1,3,5-:範圍 1-5/:步長 */10 每 10 分鐘,10-20/2 10-20 每 2# 每兩小時 0 */2 * * * echo "break" # 晚 11 點到早 8 點每兩小時,另加早 8 點 0 23-7/2,8 * * * echo "dream" # 每月 4 號及週一至三早 11 點 0 11 4 * 1-3 command
systemctl status crond # 狀態 systemctl start crond # 啟動 systemctl enable crond # 開機自啟 # 舊版 service crond status/start/restart chkconfig --level 35 crond on
cron 執行環境極度精簡:僅有 SHELL=/bin/sh、HOME、LOGNAME、PATH=/usr/bin:/bin。
解決方案:
export PATH=... 完整路徑。/usr/local/bin/python3。PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin。# 標準輸出+錯誤輸出丟棄 * * * * * /path/script.sh >/dev/null 2>&1 # 追加記錄到日誌 (推薦) * * * * * /path/script.sh >>/var/log/script.log 2>&1
未重導向時,cron 會郵件發送給用戶,長期積壓可能撐爆 /var/spool/mail。
新增任務後,cron 需 至少 2 分鐘 重載配置才會執行。測試時請將時間設為 當前+3分鐘,或 systemctl reload crond 強制重載。
Fail2Ban 實戰部署:阻擋 SSH 暴力破解的自動化防火牆整合指南
Vim 進階編輯技巧全集:移動、編輯、寄存器、宏與代碼專用功能
Bash 命令列自動補全進階技巧 10 選:complete、compgen 實戰與動態補全函數
Nginx 進階控制指南:啟動、重載、停止、平滑升級與熱備份全解析
Linux Samba 服務器深度配置指南:從基礎到進階實戰
Linux 桌面環境大比較:Plasma、GNOME、Unity、Cinnamon、MATE、Xfce、LXQt、Budgie、Pantheon 怎麼選?