没有通过Cron作业执行的Python脚本输出

时间:2015-07-23 17:11:29

标签: python-2.7 cron centos crontab

在Centos6中运行cron作业比较新,我似乎无法让这个Python脚本正确执行。我希望这个脚本执行,然后通过电子邮件发送给我输出。我一直在接收电子邮件,但它们都是空的。

到目前为止,在Crontab我尝试进入:

*/10 * * * * cd /home/local/MYCOMPANY/purrone/MyPythonScripts_Dev1 && /usr/bin/python ParserScript_CampusInsiders.py  > /var/log/cron`date +\%Y-\%m-\%d-\%H:\%M:\%S`-cron.log 2>&1 ; mailx -s "Feedparser Output" my@email.com

*/10 * * * * /home/local/MYCOMPANY/purrone/MyPythonScripts_Dev1/ParserScript_CampusInsiders.py > /var/log/cron`date +\%Y-\%m-\%d-\%H:\%M:\%S`-cron.log 2>&1 ; mailx -s "Feedparser Output" my@email.com

我在python脚本上运行chmod +x以使脚本可执行,并且Python脚本在标题处有#!/usr/bin/env python。我在这做错了什么?

另一个问题可能是我不应该使用日志文件?我用cat cron打开时在/ var / log / cron中看到的所有内容都是这样的,例如(脚本没有实际输出):

Jul 23 13:20:01 ent-mocdvsmg01 CROND[24681]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Jul 23 13:20:01 ent-mocdvsmg01 CROND[24684]: (MYJOB\purrone) CMD (/home/local/MYCOMPANY/purrone/MyPythonScripts_Dev1/ParserScript_CampusInsiders.py > /var/log/cron`date +\%Y-\%m-\%d-\%H:\%M:\%S`-cron.log 2>&1 ; mailx -s "Feedparser Output" my@email.com)

2 个答案:

答案 0 :(得分:1)

您的mailx输入中没有任何内容;它期望 stdin 上的消息。尝试在crontab之外运行它作为测试,直到它发送有效的电子邮件。你可以测试:

% echo hello |mailx -s test my@email.com

请注意,cron可以通过电子邮件向您发送其运行的输出。您只需要在crontab的顶部添加一行,如:

MAILTO = you@email.com

答案 1 :(得分:0)

解决方案是省略重定向>,而是编辑Crontab:

*/15 * * * * /home/local/COMPANY/malvin/SilverChalice_CampusInsiders/SilverChalice_Parser.py | tee /home/local/COMPANY/malvin/SilverChalice_CampusInsiders`date +\%Y-\%m-\%d-\%H:\%M:\%S`-cron.log | mailx -s "SilverChalice CampusInsiders" my@email.com