Skip to content

[Linux] 在 Ubuntu 中使用 crontab 設定排程、定期執行程式

Last Updated on 2022-01-06 by Clay

有時候,我們會希望我們寫好的程式能夠在每一天的『固定時間』自動執行,好比說每天早上爬取金融新聞、叫我們起床、在特定時段幫我們寄送郵件......

而在 Linux 中,有著個名為 crontab 的工具可以幫助我們設定排程來自動執行程式。今天就來簡單紀錄該如何設定 crontab 來完成這些功能。


crontab 設定

crontab 我們可以使用以下指令來查看是否有排程正在運行:

crontab -l

如果你的輸出為:

no crontab for "user_name"

那就代表目前沒有任何『排程』正在運行。

至於我們該如何設定 crontab 呢?我們可以使用以下指令直接開始撰寫:

crontab -e

(題外話:如果編輯 crontab 的編輯器不是你熟悉的,你可以使用 export EDITOR="editor name" 來設定你習慣的編輯器。比如說你習慣用 vim,那麼就可以使用 export EDITOR=vim 來將編輯器設定為 vim)

開始編輯之後,我們多半會看到這樣一個文件:

基本上,我們只需要按照『分鐘』、『小時』、『日期』、『月份』、『星期』五個欄位輸入,最後加上 command 即可。

好比這張經典的圖片。
  • 分鐘: 0-59
  • 小時: 0-23
  • 日期: 1-31
  • 月份: 1-12
  • 星期: 0-6

* 代表任意。

比如說我有個想要執行的 test.sh 檔,然後我希望每天凌晨十二點都可以執行一次,那麼我就要寫下以下指令:

* 0 * * * sh /home/clay/test.sh

如果我有個 test.py 的 Python 程式希望可以每 5 分鐘執行一次,那麼我可以寫下:

*/5 * * * * python3 /home/clay/test.py

最好使用『絕對路徑』來指向要執行的檔案比較好哦。


References


Read More

Tags:

Leave a Reply