這幾天終於搞定 Line Notify 的用法, 在將程式部署到樹莓派時順便複習了 Crontab 的用法, 但卻發現以前從未特別針對 Crontab 寫過一篇用法筆記, 而是散見於幾篇樹莓派相關文章中, 所以今晚特別花點時間整理了一下以備日後查考.
在 Linux 環境下編輯 Crontab 的指令如下 :
$ crontab -e
以樹莓派為例, 它會跳出選單要求選取一個編輯器, 通常選最簡單好用的 nano, 例如 :
pi@raspberrypi:~ $ crontab -e
no crontab for pi - using an empty one
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.tiny
3. /bin/ed
Choose 1-3 [1]: 1
crontab: installing new crontab
進入 nano 編輯器後即可輸入 Crontab 指令, 每列指令由前面五個以空格隔開的時間欄位以及後面的程式檔路徑與參數等欄位組成, 語法如下圖所示 :
可見 Crontab 的時間欄位主要是使用下列四個符號來設定 :
- * (任何值)
- , (列舉)
- - (連續區間)
- /n (步階, n 為整數)
注意, 其中步階 /n 前面須與 * 搭配使用, 表示每隔多少時間, 例如在分欄位使用 */5 表示每 5 分鐘執行一次, 在時欄位使用 */4 表示每 4 小時執行一次.
$ sudo chmod +x /home/pi/get_twstock.py
顯示 Crontab 內容之指令如下 :
$ crontab -l
以下列出幾個常用的 Crontab 時間欄位設定 :
Crontab 時間欄位 | 說明 |
*/5 * * * * | 每五分鐘執行 (從 0 分開始執行, 0, 5, 10, 15, 20, ...) |
*/31 * * * * | 每三十一分鐘執行 (從 1 分開始執行, 1, 31, 1, 31, .....) |
* */1 * * * | 每一小時執行 (從 0 分開始執行, 00:00, 01:00, 02:00, ....) |
0 * * * * | 每個整點 (即 0 分) 執行 |
30 8 * * * | 每天早上 08:30 執行 |
30 8 * * 0 | 每個星期天早上 08::30 執行 (30 08 * * Sun 亦可) |
30 8 1 1 * | 每年 1 月 1 日早上 08:30 執行 |
30 22 1,15 * * | 每個月的 1 日, 15 日的 22:30 執行 |
0 9-17 * * * | 每天的 9 點至 17 點整點 (即 0 分) 時執行 |
0 0 1 * * | 每個月的月初 (1 日 0 時 0 分) 執行 |
0 0 * * 0 | 每個周日開始 (0 時 0 分) 執行 |
0 0 * * * | 每天開始時 (0 時 0 分) 執行 |
0 8 * * 6,0 | 每周六周日 08:00 執行 |
0 16,17 * * 1-5 | 每周一至周五 16:00 與 17:00 執行 |
沒有留言:
張貼留言