啓動定時:crontab -e
50 16 * * * source /etc/profile && cd /home/AA/BB && nohup python remindmail.py > remindmail.log 2>&1 &
但是並沒有定時產生,查看log
Traceback (most recent call last):
File "remindmail.py", line 5, in <module>
import MySQLdb
ImportError: No module named MySQLdb
這就很奇怪,我直接進行在終端運行
$ python remindmail.py # 這就可以直接運行,喵喵喵?
百度了一下之後,才知道和路徑有關,所以開始解決
確認python路徑
which python
~/Python/ENV/bin/python
然後終端實現
$ ~/Python/ENV/bin/python remindmail.py # 可行
然後放入crontab裏面,和剛開始唯一的區別是,指定了python的運行路徑
50 16 * * * source /etc/profile && cd /home/AA/BB && nohup ~/Python/ENV/bin/python remindmail.py > remindmail.log 2>&1 &
成功
尾巴
# 可見各個版本之間的問題
$ /usr/local/bin/python -V
Python 2.7.9
$ /usr/bin/python -V
Python 2.6.6
$ which python # 這是我們直接輸入python xx.py執行的路徑
/usr/local/bin/python
我們最終的目的就在於,模擬終端輸入,只是用crontab進行定時例行而已,crontab裏面估計默認的路徑,所以需要用絕對路徑來做,對於沒有配置好環境的服務器,在此操作時候更加需要使用絕對路徑!