python代码通过cron作业没有运行

时间:2017-08-03 06:59:17

标签: python-3.x cron

我正在尝试运行python3脚本,以便在特定时间每天查看特定条件的电子邮件。

我可以看到crontab调用命令,但脚本没有给我我需要的结果,即。似乎没有运行。我可以在syslog中看到cron执行:

  

Aug 3 16:25:01 raspberrypi / USR / SBIN / CRON [4597] :( pi)CMD(cd / home / pi / pythonscripts)

     

Aug 3 16:25:01 raspberrypi / USR / SBIN / CRON [4598] :( pi)CMD(sudo python3 dfj_gmail_test_v1g.py> /home/pi/pythonscripts/cronlog.log)

     

Aug 3 16:25:02 raspberrypi / USR / SBIN / CRON [4595] :( CRON)info(未安装MTA,丢弃输出)

python脚本需要运行,检查gmail,如果找到某个主题的某个电子邮件,它应该通过我的覆盆子上的GPIO打开LED,这对我来说比其他任何东西都更耐心。如果我从命令行本身运行脚本(使用我的crontab中的行),脚本会执行检查并点亮指示灯。所以剧本本身很好。关于如何获取有关python脚本无法通过cron工作的更多信息的任何想法?

如果需要我可以添加python 3代码

1 个答案:

答案 0 :(得分:0)

看来你有两个不同的cron工作,一个在做

cd /home/pi/pythonscripts

和另一个

sudo python3 dfj_gmail_test_v1g.py > /home/pi/pythonscripts/cronlog.log

这些是独立的工作,第一个工作不会影响第二个工作,因此第二个工作的工作目录不会被更改,也不会找到脚本。如果您希望这一点起作用,则需要对两者使用单个命令,例如:

cd /home/pi/pythonscripts && sudo python3 dfj_gmail_test_v1g.py > /home/pi/pythonscripts/cronlog.log

如果工作目录并不重要,请提供python文件的完全限定路径:

sudo python3 /home/pi/pythonscripts/dfj_gmail_test_v1g.py

此外,从crontab使用sudo的instad,请考虑直接使用root用户的contab。并且您应该将stderr stdout重定向到您的日志文件,这将在出现错误时提供更详细的输出,例如:

... > /home/pi/pythonscripts/cronlog.log 2>&1

或安装MTA,然后cront作业的输出将作为电子邮件发送给所有者。