MAC OS和Linux下的crontab實現定時任務(執行python等指令碼)
阿新 • • 發佈:2019-01-05
前言
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的路徑,還是要執行的指令碼路徑,包括在指令碼要使用到的路徑,
都寫成絕對路徑,就不會出錯了。 至於為什麼,這個我也不太清楚,如果有人知道還望指點一二。