crontab 指令筆記
阿新 • • 發佈:2020-09-20
前言
之前有個定時任務, 需要每天的9點和21點定時跑. 當時我是這麼寫的:
0 9 * * * XXX
0 21 * * * XXX
當時經過高人指點, 發現這兩條命令可以寫成一條:
0 9,21 * * * XXX
好羞恥... 於是, 我決定整理一篇crontab
的語法. 防止下次再出現這尷尬的場景..
指令
命令列
- crontab -l : 檢視當前使用者的定時任務
- crontab -e : 編輯當前使用者的定時任務
基本有這倆就夠用了. 主要是整理一下定時任務的命令格式
定時任務
命令格式如下:
min h d m w XXX
- min: 分鐘(0-59)
- h: 小時(0-23)
- d: 日(1-31)
- m: 月(1-12)
- w: 星期(0-7) // 0,7都是週日
- XXX: 要執行的命令
命令的含義是: 在指定的時間執行指定命令.
其中針對時間設定有以下幾個分割方式:
*
: 萬用字元. 表示每一個時刻/
: 整除標誌. eg:*/5
當時間點能被5整除時.,
: eg:1, 2
1點和2點-
: eg:5-10
5點到10點L
: 最後一個(僅星期有效). eg:5L
. 最後一個星期五W
:最接近的工作日(僅月有效). eg:15W
. 最接近15號的工作日.#
: 第幾個(僅星期有效). eg:5#3
. 第3個星期五.
舉例
- 每三小時執行一次
0 */3 * * * XXX
- 週一到週五每天下午五點
0 17 * * 1-5 XXX
- 每天2,3,4點執行
0 2,3,4 * * * XXX
- 每天上午兩小時執行一次
0 0-12/2 * * * XXX
- 每月第三個星期五12點執行
0 12 * * 5#3 XXX
- 每月最後一個星期五12點執行
0 12 * * 5L XXX
- ...
最後過下來, 其任務時間的表達也不過這幾種形式, 想來可以應對大多數定時的場景了.
後面用到不至於再抓瞎了. 簡單記錄, 留作後面查詢.