首頁 > 軟體

Linux下使用cron讓Python程式持久化執行

2020-06-16 17:20:35

正常情況下,一個Python程式如果希望實現一直執行,不出錯不奔潰是很難的,即使編譯為可持續檔案也是一樣,幸運的是很多需求並不是需要24小時不間斷執行,而是每隔一段時間執行一次即可,Linux系統自帶的cron就為我們實現了這種可能:

輸入

crontab -e

這時候就會展示已經設定好的任務,如果你之前沒有設定過,那這裡就是空的

設定你要執行的任務

* * * * * your-task

這裡的引數說明如下:

在設定後,系統就會自動執行這個任務,但是有些童鞋可能會遇到這樣的錯誤:

No module named '****'

而你直接在終端輸入python,然後import這個模組,卻又是Ok的,

這個問題困擾了我不少時間,最後發現可能的原因是系統中存在多個python版本

而使用cron呼叫的時候恰好不是你想要的那個,解決的辦法也很簡單

把詳細的python路徑寫全就行了

* * * * * /root/anaconda3/bin/python /root/btc.py

注意前面的紅字部分路徑就是你需要的python版本的實際路徑

如果需要把任務紀錄檔輸出到指定的檔案,可以這樣:

* * * * * /root/anaconda3/bin/python /root/btc.py >> /root/error.txt

下面是一些關於cron的使用範例

* * * * * XXX 每分鐘執行。
0 * * * * XXX 每小時執行。
0 0 * * * XXX 每天零點執行。
0 9,18 * * * XXX在每天的9AM和6PM執行。
0 9-18 * * * XXX 在9AM到6PM的每個小時執行。
0 9-18 * * 1-5 XXX 週一到週五的9AM到6PM每小時執行。
*/10 * * * * XXX 每10分鐘執行。 

cron的使用場景非常多,例如:

定期備份你的檔案,定期備份資料庫並行送到你的郵箱,定期XXX

基本上跟你的程式語言一結合,定時定期類的任務都能完成

crontab中新增定時指令碼不生效的原因 http://www.linuxidc.com/Linux/2017-02/140237.htm

Unix下使用crontab注意事項 http://www.linuxidc.com/Linux/2017-02/140448.htm

Linux定時任務Crontab命令詳解  http://www.linuxidc.com/Linux/2015-10/124478.htm

Linux的cron定時任務使用說明  http://www.linuxidc.com/Linux/2016-12/138992.htm

Ubuntu使用crontab定時任務 http://www.linuxidc.com/https://www.linuxidc.com/Linux/2013-05/84770.htm

Linux計劃任務(at batch crontab anacron) http://www.linuxidc.com/https://www.linuxidc.com/Linux/2013-03/81584.htm

備份crontab的實用指令碼 http://www.linuxidc.com/Linux/2017-02/140447.htm

Linux任務計劃 (at,crontab) http://www.linuxidc.com/Linux/2015-09/122970.htm

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-03/141283.htm


IT145.com E-mail:sddin#qq.com