4

私はこれに関するいくつかの投稿を読みましたが、それらの中で助けを見つけることができませんでした。

smtplibを使用してメールを送信するPythonスクリプトがあります。コマンドラインから呼び出されたときに機能します。

私は最初の行として持っており、とを使用し#!/usr/bin/pythonて実行できます。/home/pi/ipsender.pypython /home/pi/ipsender.py

私のcrontabはです*/1 * * * * /home/pi/ipsender.pyが、私も試し*/1 * * * * python /home/pi/ipsender.pyまし*/1 * * * * /usr/bin/python /home/pi/ipsender.pyた。

コマンドラインからpythonwhich pythonを取得して実行すると、 smtplibをインポートして使用できます。/usr/bin/pyhton

/var/log/syslogが得る:

Nov 27 22:57:01 raspberrypi /USR/SBIN/CRON[3764]: (pi) CMD (python /home/pi/ipsender.py)
Nov 27 22:57:01 raspberrypi /USR/SBIN/CRON[3763]: (CRON) info (No MTA installed, discarding output)

そして、私はNo MTAを推測しています...それは、Cronが何をしているのかについての電子メールを送信しないということです。

このスクリプトを実行するにはどうすればよいですか。

[編集]

スクリプトの許可は

-rwxr-xr-x 1 pi   pi       551 Nov 27 22:37 ipsender.py

[編集2]DReadのヒントを使用して次のログを取得しています

starting
Traceback (most recent call last):
  File "/home/pi/ipsender.py", line 7, in <module>
    ifconfig_output = sp.check_output(["ifconfig", "wwan0"])
  File "/usr/lib/python2.7/subprocess.py", line 537, in check_output
    process = Popen(stdout=PIPE, *popenargs, **kwargs)
  File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

パスに何かがあることを私に提案します。/etc/crontab私は持っていますが、PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin与えwhich ifconfigます/sbin/ifconfig。だからそれは問題ではないはずですよね?

4

2 に答える 2

6

cronには多くの落とし穴があります...MTAがない場合は、出力をより簡単な方法で確認してください。ファイルにパイプしてみてください。

*/1 * * * * /home/pi/ipsender.py > /home/pi/ipsender.log 2>&1

Pythonファイルをaでprint 'starting'開始して、Pythonファイルが正常に実行を開始するかどうかを確認します。

于 2012-11-27T22:50:04.643 に答える
1

スクリプトのSTDOUTとSTDERRを保存してみてください。

*/1 * * * * /home/pi/ipsender.py &> /tmp/ipsender.log
于 2012-11-27T22:50:38.463 に答える