Python crontab脚本似乎不起作用。当我手动运行时,
python /home/ec2-user/code1.py
它工作正常但是当放入crontab的cron.txt文件时,不是。
我的crontab文件是:
@hourly python /home/ec2-user/code1.py >/dev/null 2>&1
我也试过
0 * * * * python /home/ec2-user/code1.py >/dev/null 2>&1
但是没有太多运气。
sudo crontab -l
@hourly python /home/ec2-user/code1.py >/dev/null 2>&1
显示一切正常。 我尝试了Crontab not running my python script并且其他人也没有多少运气。
用
PATH=/opt/python2.7/bin
MAILTO=my@email
*/5 * * * * /home/ec2-user/code1.py
我收到的电子邮件是:
/bin/sh: /home/ec2-user/code1.py : No such file or directory
但我可以打开并编辑文件没问题。我尝试了许多不同的东西,但它归结为:cron没有看到文件。
感觉我经历了整个https://askubuntu.com/questions/23009/reasons-why-crontab-does-not-work 仍然没有运气
答案 0 :(得分:6)
ps aux | grep [c]ron
应显示正在运行的cron进程MAILTO=<email address>
,以便您收到电子邮件/opt/python2.7/bin/python
)的完整路径,而不仅仅是python
echo FOOBAR
,并验证您是否收到了该电子邮件。ls -l /homeec2-user/code1.py
?应该是/home/ec2-user/code1.py
crontab -e
编辑用户的crontab,而不是从其他平台编辑,或直接编辑文件。crontab -l | cat -A
,以便我们验证所有控制字符是否正确。答案 1 :(得分:1)
是您的脚本可执行文件? chmod 700 code1.py
代码中的第一行应该是,在大多数情况下,python安装在这个地方
#!/usr/bin/python
之后,crontab应该执行
0 * * * * /home/ec2-user/code1.py >/dev/null 2>&1
答案 2 :(得分:1)
如果错误消息被正确复制/粘贴,则似乎表明crontab文件存在问题。如果您在国外平台上创建它,最好重新开始使用空文件,这次是在本机编辑器中创建它。
正如其他人已经指出的那样,将输出和错误重定向到/dev/null
基本上使调试变得不可能,所以不要这样做。如果您的程序创建了大量冗长的无信息输出,请在包装器中运行它,过滤掉简单的诊断程序,或者,如果它是您自己的程序,则重写它以在正常操作中静默运行。
答案 3 :(得分:0)
您是否尝试过“/ usr / bin / python”而不是“python”?
ps ax | grep python 将为您提供可以使用的路径。
答案 4 :(得分:0)
尝试这个命令,希望你的python在哪里:
which python
很可能你会有像这样的东西
/usr/bin/python /home/ec2-user/code1.py