Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux Crontab 指令格式與實用範例大全

編輯:Linux 教學

Crontab 是 Linux 系統中最常用的排程工具,掌握其語法格式與特殊符號,能讓你輕鬆實現各種複雜的定時任務需求。本文整理了標準格式、欄位說明與豐富實戰範例,適合速查與入門。

基本語法格式

* * * * *  command
分 時 日 月 周 命令

六大欄位詳細說明

欄位意義取值範圍備註
1分鐘0-59每分鐘用 * 或 */1
2小時0-230 代表午夜 0 點
3日期1-31
4月份1-12
5星期0-60 代表週日,7 也可表週日
6命令完整路徑要執行的指令或腳本

特殊符號與進階用法

  • *:任意值(每一單位)
  • */n:間隔 n 單位(如 */2 代表每 2 小時)
  • a-b:範圍(如 6-12 代表 6 到 12 點)
  • a,b,c:列舉(如 1,10,22 代表特定日期)
  • a-b/n:範圍內間隔(如 6-12/3 代表 6 到 12 點每 3 小時)

實戰範例精選

排程表達式執行時間說明
30 21 * * * /usr/local/etc/rc.d/lighttpd restart每晚 21:30 重啟服務
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart每月 1、10、22 號 04:45 重啟
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart每週六、週日 01:10 重啟
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart每天 18:00-23:00 每 30 分鐘重啟
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart每週六 23:00 重啟
* */1 * * * /usr/local/etc/rc.d/lighttpd restart每小時重啟一次
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart23 點到隔天 7 點,每小時重啟
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart每月 4 號與週一至週三 11:00 重啟
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart1 月 1 號 04:00 重啟

Crontab 常用管理指令

指令功能
crontab -e編輯排程(預設 vi,可設 VISUAL 環境變數更換編輯器)
crontab -l列出目前排程
crontab -r刪除目前排程
crontab file [-u user]用指定檔案取代目前排程
crontab -c dir指定 crontab 目錄

環境變數與注意事項

  • Cron 執行環境僅有 USER、HOME、SHELL 三個環境變數,腳本中請使用絕對路徑
  • 預設會將執行輸出郵件寄給使用者,若不想收信,在指令末尾加 >/dev/null 2>&1
  • 範例:20 0-23/2 * * * echo "haha" >/dev/null 2>&1(每兩小時執行且不發郵件)

更多實用範例

# 每天早上 7 點執行 /bin/ls
0 7 * * * /bin/ls

# 12 月內,每天 6-12 點每 3 小時備份
0 6-12/3 * 12 * /usr/bin/backup

# 週一至週五 17:00 寄信
0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata

# 每 2 小時輸出一次
20 0-23/2 * * * echo "haha"

# 每天 06:10
10 6 * * * date

# 每兩小時
0 */2 * * * date

# 23 點到 7 點每兩小時,加上 8 點
0 23-7/2,8 * * * date

熟練運用 Crontab 的彈性語法,能精準掌控任務執行時機,是 Linux 運維與開發的必備技能。

Copyright © Windows教程網 All Rights Reserved