crontab 指令筆記

前言

之前有個定時任務, 需要每天的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個星期五.

舉例

  1. 每三小時執行一次
    • 0 */3 * * * XXX
  2. 週一到週五每天下午五點
    • 0 17 * * 1-5 XXX
  3. 每天2,3,4點執行
    • 0 2,3,4 * * * XXX
  4. 每天上午兩小時執行一次
    • 0 0-12/2 * * * XXX
  5. 每月第三個星期五12點執行
    • 0 12 * * 5#3 XXX
  6. 每月最後一個星期五12點執行
    • 0 12 * * 5L XXX
  7. ...

最後過下來, 其任務時間的表達也不過這幾種形式, 想來可以應對大多數定時的場景了.

後面用到不至於再抓瞎了. 簡單記錄, 留作後面查找.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章