用python运行crontab

时间:2013-08-29 14:22:03

标签: python linux crontab

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 仍然没有运气

5 个答案:

答案 0 :(得分:6)

  1. 验证cron正在运行:ps aux | grep [c]ron应显示正在运行的cron进程
  2. 从命令中删除重定向,以便cron通过电子邮件向您发送输出
  3. 在您的crontab中添加MAILTO=<email address>,以便您收到电子邮件
  4. 在命令
  5. 中放置python(/opt/python2.7/bin/python)的完整路径,而不仅仅是python
  6. 向crontab添加另一个命令,例如echo FOOBAR,并验证您是否收到了该电子邮件。
  7. ls -l /homeec2-user/code1.py?应该是/home/ec2-user/code1.py
  8. 只使用crontab -e编辑用户的crontab,而不是从其他平台编辑,或直接编辑文件。
  9. 运行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
相关问题