2014-12-30 31 views
0

我有一份工作,我已设置为每5分钟运行一次。我确定它的确运行运行:Crontab - Python脚本运行,将输出发送到邮件,但不写入文件

grep CRON /var/log/syslog 

这表明它正在运行的准确命令我需要它来运行“python3 /root/foofolder/foo.py R”

Dec 29 23:05:01 fooserver CRON[9306]: (root) CMD (python3 /root/foofolder/foo.py R) 

它将输出发送到邮件。我阅读邮件和输出看起来好像我在终端上运行它,完全按照我的需要。该脚本应该写出一个文件。它没有这样做。在命令行中运行脚本可以很好地写入文件。我给了.py文件+ x权限并添加了

#!/usr/bin/python 

到.py脚本的开头。还有什么我失踪?

+0

您没有指定是否为文件使用绝对路径或相对路径。总是使用绝对路径。 – user3427419

+1

没有显示'foo.py'脚本的要点,我们无法调试它。 –

+0

不相关:在这种情况下,您不需要+ x权限和/或shebang('#!'),因为您使用了'python3'。如果您设置了正确的shebang'#!/ usr/bin/python3'并且可执行权限 – jfs

回答

1

尝试在脚本的早期使用绝对路径和/或os.chdir到一个众所周知的位置(在打开文件之前)。

+0

使用os.chdir设置路径的工作方式类似于魅力,则可以省略'python3'。 –

+0

快乐的工作!请考虑接受这个答案。谢谢! –