1. 程式人生 > >MAC OS和Linux下的crontab實現定時任務(執行python等指令碼)

MAC OS和Linux下的crontab實現定時任務(執行python等指令碼)

前言

crontab命令常見於Unix和類Unix的作業系統中,用於設定週期性被執行的指令。該命令從標準輸入裝置讀指令,並將其存入到“crontab”檔案中,以供之後讀取和執行。

使用方法

1.crontab -e 編輯自定義自己的任務,儲存退出後自動新增到crontab列表中執行

2.crontab -l 檢視所有crontab列表

crontab格式說明

*    *    *    *    *    command

1.分鐘,取值範圍0-59

2.小時,取值範圍0-23

3.幾號,取值範圍1-31

4.月份,取值範圍1-12

5.星期幾,取值範圍0-7

6.需要執行的命令,可以是語句或是指令碼

使用示例

 * * * * * echo "one minute pass" >> /Users/hulk/mytest/a.txt

每隔一分鐘,寫一條資訊到a.txt

*/2 * * * * /usr/local/bin/python3 /Users/hulk/mytest/a.py

每隔兩分鐘,執行一次a.py

1 */3 * * * /usr/local/bin/python3 /Users/hulk/mytest/a.py

每隔三小時,第一分鐘執行一次

*/20 6-12 * 12 * /usr/local/bin/python3 /Users/hulk/mytest/a.py

在12個月內,每天早上6-12點中,每隔20分鐘執行一次

0 17 * * 1-5 /usr/local/bin/python3 /Users/hulk/mytest/a.py

每週一到週五下午五點執行一次

大坑提醒

在執行python指令碼的時候,很多人會發現,我語法沒寫錯,指令碼沒有寫錯,甚至指令碼都可以執行,可是加入到crontab任務中卻不執行,也沒有任何報錯資訊,不要慌,我在這試了整整一晚,發現了在這個大坑,如果你這樣寫一定是錯的:

*/2 * * * * python3 /Users/hulk/mytest/a.py

一定要要記得,所有路徑都要寫成絕對路徑,不管是python3的路徑,還是要執行的指令碼路徑,包括在指令碼要使用到的路徑,

都寫成絕對路徑,就不會出錯了。

至於為什麼,這個我也不太清楚,如果有人知道還望指點一二。