介紹
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
裡面。