使用crontab執行定時任務不是第一次用,昨天下午設置幾個任務,yy裏面已存在的任務,修改指定python環境和執行文件路徑後,死活到點不執行。html
任務設置以下:python
15 16 * * * /root/env_dir/zxkg/bin/python /root/myproject/zhxin/some_tasks/announcement_task.py 15 16 * * * /root/env_dir/zxkg/bin/python /root/myproject/zhxin/some_tasks/finreport_task.py 15 16 * * * /root/env_dir/zxkg/bin/python /root/myproject/zhxin/some_tasks/layout_task.py 15 16 * * * /root/env_dir/zxkg/bin/python /root/myproject/zhxin/some_tasks/stock_price_task.py
crontab: installing new crontab 表示任務設置成功。服務器
排查一:運維
- 文件權限(必須可執行):ui
chmod u+x /root/myproject/zhxin/some_tasks/announcement_task.py chmod u+x /root/myproject/zhxin/some_tasks/finreport_task.py chmod u+x /root/myproject/zhxin/some_tasks/layout_task.py chmod u+x /root/myproject/zhxin/some_tasks/stock_price_task.py
排查二:spa
- 在窗口本身單獨執行下如:/root/env_dir/zxkg/bin/python /root/myproject/zhxin/some_tasks/announcement_task.py,拋出問題.net
- 導包問題見上一篇博客code
- 找不到安裝的庫,本例中使用的沙盒環境,執行pip install -r requirements.txt 安裝的庫沒有安裝到沙盒環境下(/root/env_dir/zxkg/lib/python3.5/site-packages/),若安裝成功會在路徑下找到。環境實在是怪異,建立沙盒指定的python3版本,進入沙盒環境下,執行python居然顯示的python2,更不用說pip了。htm
一萬個?。?,記得上上個禮拜參加比賽,比賽項目部署在個人這個服務器上,當時一個同事把密碼要過去了,深深地懷疑動環境了。。。blog
立馬改了個密碼,改完不到一分鐘,那個同事問我是否是改密碼了@!@,跑過來講要上服務器看代碼,在服務器上運行,一句話懟回去了(上碼雲上拉,本地運行)無需解釋太多。
因而,今天重裝了python環境,等着交任務時碰到環境問題、運維問題是最讓人腦仁疼的。。。
解決:
重裝python3環境,參考oschina上一篇文章。
此處糾正下,要是複製文章中的命令建立軟鏈時會報錯:ln: target `/usr/bin/python3' is not a directory ,做者手誤ln -s前面的中線寫成中文的了。
感謝做者分享高質量文章,解決了個人問題~
做者文章地址: