Crontab指令
Crontab指令

Crontab指令

介紹

Crontab,Linux內建的排程工具,其檔案通常放置於/etc/crontab/etc/cron.d/目錄下。


基本指令

查看自己的排程

crontab -l


編輯自己的排程

會開啟預設編輯器, nano, vim之類的

crontab -e


刪除自己的全部排程

crontab -r


切換使用者

# 加 -u <使用者>
 crontab -u Lisa { -e | -l | -r }



設定排程時間

一個crontab任務由5個時間欄位+一個command組成,從左到右表示分、時、日、月、星期、指令,其中月份和星期可以用英文表示。

MIN HOUR DOM MON DOW CMD
欄位 說明 備註
MIN 0-59
HOUR 小時 0-23
DOM 1-31
MON 月份 1-12 可用英文例如Jan
DOW 星期幾 1-7(表示一到日), 0(也表示週日) 可用英文例如Sun
CMD 指令 就是指令,例如php path/to/worker.php


以上的時間欄位,除了填入數字外外,也可以填入一些特殊符號

欄位 說明
* 表示每一個值,例如在小時填*就是每一小時
所以* * * * * 就是每分鐘執行一次啦
, 可以在一個欄位設定多個時間點
例如我要在每天的7點、12點、17點執行一次,可以寫成* 7,12,17 * * *
- 表示時間區間
例如* 7-17 * * * 表示每天從7點到17點,每小時會執行一次
/n n表示數字,/n表示每格n個單位
例如*/5 * * * * 表示每隔五分鐘執行一次


如果容易忘記順序的話,可以把以下這段貼在crontab檔案的最上方,這樣每次編輯的時候都可以看到啦。


# ┌───────────── 分鐘   (0 - 59)
# │ ┌─────────── 小時   (0 - 23)
# │ │ ┌───────── 日     (1 - 31)
# │ │ │ ┌─────── 月     (1 - 12)
# │ │ │ │ ┌───── 星期幾 (0 - 7,0 是週日,6 是週六,7 也是週日)
# │ │ │ │ │
# * * * * * /path/to/command



同場加映: vim使用教學

可以參考這篇,避免卡在crontab -e裡面。