首页 文章

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

提问于
浏览
0

我正在尝试运行python3脚本来检查特定条件的电子邮件,每天在特定时间 .

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

8月3日16:25:01 raspberrypi / USR / SBIN / CRON [4597] :( pi)CMD(cd / home / pi / pythonscripts)8月3日16:25:01 raspberrypi / USR / SBIN / CRON [4598]: (pi)CMD(sudo python3 dfj_gmail_test_v1g.py> /home/pi/pythonscripts/cronlog.log)8月3日16:25:02 raspberrypi / USR / SBIN / CRON [4595] :( CRON)info(未安装MTA,丢弃)输出)

python脚本需要运行,检查gmail,如果发现某个主题的某个电子邮件,它应该通过我的覆盆子上的GPIO打开LED,这对我来说更像是一个测试 . 如果我从命令行本身运行脚本(使用我的crontab中的行),脚本会执行检查并点亮指示灯 . 所以剧本本身很好 . 有关如何获取有关python脚本无法通过cron工作的更多信息的任何想法?

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

1 回答

  • 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作业的输出将作为电子邮件发送给所有者 .

相关问题