2012-11-27 63 views
4

的Cron Python腳本我已經閱讀這幾個職位,但在他們,我無法找到幫助。不執行

我有一個使用的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

在做which python我得到/usr/bin/pyhton並從命令行運行python我可以導入和使用smtplib就好了。

/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) 

而且我猜沒有MTA ......只是克朗左右不發送關於它在做什麼郵件,或者是不是?

如何運行此腳本。

[編輯]

腳本的權限是

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

[EDIT2] 使用尖嘴d讀,我發現了以下日誌

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/binwhich ifconfig/sbin/ifconfig。所以這不應該是個問題吧?

+0

什麼是文件的權限? – PearsonArtPhoto

+0

-rwxr-XR-X 1個屁屁551 11月27日22:37 ipsender.py – evading

+0

如果你嘗試「命令蘇」,然後手動運行該腳本,它的工作原理? – martincho

回答

6

有很多與crons陷阱的......在沒有MTA的,看到的輸出更簡單的方法 - 嘗試管道連接到文件:

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

啓動Python文件關閉了print 'starting'看是否python文件開始執行正常。

+1

好吧,我可以看到腳本失敗[EDIT2]但我想不出爲什麼。 – evading

+0

你的腳本是從'pi'用戶的crontab運行的,它運行在'/ etc/crontab'的不同shell中。我想如果你把'PATH ='行放在與腳本相同的crontab中,它可能會工作。或者,嘗試在腳本中指定「ifconfig」的絕對路徑。 –

+0

這個技巧。謝謝! – evading

1

嘗試保存腳本的輸出和錯誤:

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