2017-08-03 10 views
0

私はpython3スクリプトを実行して、特定の条件で毎日特定の時刻にメールをチェックしようとしています。pythonコードでcronジョブが実行されていない

私はcrontabがコマンドを呼び出すのを見ることができますが、スクリプトは私に必要な結果を与えません。実行されていないようです。私はsyslogにcronの実行を見ることができます:

8月3日午後04時25分01秒raspberrypi/USR/SBIN/CRON [4597]:(PI)CMD(CD /ホーム/ PI/pythonscripts)

8月3日午後04時25分01秒raspberrypi/USR/SBIN/CRON [4598](PI)CMD(須藤のpython3 dfj_gmail_test_v1g.py> /home/pi/pythonscripts/cronlog.log)

8月3日午後04時25分:02 raspberrypi/USR/SBIN/CRON [4595]:(CRON)info(MTAはインストールされず、出力を破棄します)

pythonスクリプトを実行する必要があります.ch eck gmailと特定の件名の電子メールが見つかった場合は、自分のラズベリーのGPIOを使ってLEDを点灯させる必要があります。私がコマンドラインからスクリプトを実行すると(私のcrontabのような行を使って)、スクリプトはチェックを行い、LEDを点灯させます。スクリプト自体は良いです。どのようにPythonスクリプトがcronを介して動作しないのかについてのより多くの情報を得る方法に関するアイデアはありますか?

私は、Python 3のコード

答えて

0

を追加することができます必要がある場合には、2つの異なるcronジョブ、

cd /home/pi/pythonscripts 

をやってものを持っているし、他の

sudo python3 dfj_gmail_test_v1g.py > /home/pi/pythonscripts/cronlog.log 

これらは独立して仕事しているようで、最初のものは2番目のジョブには影響しません。そのため、2番目のジョブの作業ディレクトリは変更されず、スクリプトは見つかりません。あなたはこれが仕事をしたい場合は、例えば、両方のために単一のコマンドを使用する必要があります。

cd /home/pi/pythonscripts && sudo python3 dfj_gmail_test_v1g.py > /home/pi/pythonscripts/cronlog.log 

またはPythonのファイルへの完全修飾パスを与える作業ディレクトリは本当に問題ではない場合:

sudo python3 /home/pi/pythonscripts/dfj_gmail_test_v1g.py 

また、crontabからsudoを使用している場合は、rootユーザーのcontabを直接使用することを検討してください。そして、あなたは、あなたのログファイルに標準エラー出力標準出力をリダイレクトする必要があり、エラーの場合は、あなたのより多くのdetailled出力を与えること、例えば:

... > /home/pi/pythonscripts/cronlog.log 2>&1 

またはMTAをインストールし、その後、crontジョブの出力がに送信されます電子メールの所有者。

+0

これは良いアドバイスです。方法はありますか?1分間隔で、同じ時間ではなく、同じ時間に実行することができますか? –

+0

はい、 '/ interval'を使用して間隔を指定できます。 '*/1 * * * *'は毎分cronjobを実行します。より多くの例については、[crontab(5)](http://man7.org/linux/man-pages/man5/crontab.5.html#EXAMPLE_CRON_FILE)のマンページを参照してください。 – mata

関連する問題