2017-06-14 8 views
1

私はbashファイルを実行するためにCronジョブを作成しましたが、コマンドラインからはOKでしたが、Cronジョブから実行すると "Python is呼び出されていないコマンド」bash shファイルの中でpythonスクリプトを実行するようにcronジョブを設定する

マイbashのファイル:Myscript.sh

#!/bin/bash 
cd /var/www/html/public_html/test_scripts 
python script1.py serverlog.log 2&>1 & 
python script2.py serverlog.log 2&>1 & 

私のcronジョブが

30 5 * * 1-5 root bash Myscript.sh 

を設定するには、誰もが私が間違ってやっている知っていて、この問題を回避するために?

ありがとう、

+0

を変更crontabファイルに適切に設定PATHですか? – xunatai

+0

はい、パスはMyscript.shの場所に置くように正しく設定されています –

答えて

1

あなたはpythonに完全なパスを入れる必要があります。パスがわからない場合は、whichコマンドでそれを見つけることができます:

➜ ~ which python 
/usr/bin/python 

してからスクリプト

#!/bin/bash 
cd /var/www/html/public_html/test_scripts 
/usr/bin/python script1.py serverlog.log 2&>1 & 
/usr/bin/python script2.py serverlog.log 2&>1 & 
+0

こんにちは、Pythonインタプリタへの完全なパスを入れた後、エラーメッセージは消えましたが、今はCronから実行するといくつかのモジュールが見つかりませんしかし、コマンドラインから実行すると、すべて良いです。誰でも知っている理由は? –

+0

同様の疑問がありましたので、こちらをご覧ください:https://stackoverflow.com/questions/7970905/cannot-import-python-mysql-module-when-running-a-script-using-crontab –

関連する問題