2012-11-27 42 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