我正在尝试运行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代码
答案 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作业的输出将作为电子邮件发送给所有者。