3

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 不运行我的 python 脚本,并且其他人也没有太多运气。

编辑:

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

4

5 回答 5

6
  1. 验证 cron 正在运行:ps aux | grep [c]ron应该显示正在运行的 cron 进程
  2. 从命令中删除重定向,以便 cron 通过电子邮件向您发送输出
  3. 将 a 添加MAILTO=<email address>到您的 crontab 中,以便您收到电子邮件
  4. 将完整路径放入 python ( /opt/python2.7/bin/python) 而不是仅python在命令中
  5. 向 crontab 添加另一个命令,例如echo FOOBAR并验证您是否收到电子邮件。
  6. ls -l /homeec2-user/code1.py? 那应该是/home/ec2-user/code1.py
  7. 只编辑用户的 crontab,crontab -e永远不要从另一个平台,或直接编辑文件。
  8. 运行crontab -l | cat -A,以便我们可以验证所有控制字符是否正确。
于 2013-08-29T19:32:49.553 回答
1

你检查了以下几点吗?

  • 你的脚本可执行吗?chmod 700 code1.py

  • 代码中的第一行应该是,在大多数情况下,python 安装在这个地方

    • #!/usr/bin/python

之后应该执行如下的crontab

0    *    *    *    * /home/ec2-user/code1.py >/dev/null 2>&1
于 2013-08-29T15:07:40.083 回答
1

如果错误消息被正确复制/粘贴,则似乎表明 crontab 文件存在问题。如果您在国外平台上创建它,最好从一个空文件重新开始,这次是在本机编辑器中创建它。

正如其他人已经指出的那样,将输出和错误重定向到/dev/null基本上会使调试变得不可能,所以不要这样做。如果您的程序创建了大量冗长的无信息输出,请在过滤掉琐碎诊断的包装器中运行它,或者,如果它是您自己的程序,请重写它以在正常操作中静默运行。

于 2013-09-02T03:24:58.650 回答
0

试试这个命令,希望你的 python 在哪里:

which python

你很可能会有类似的东西

/usr/bin/python /home/ec2-user/code1.py
于 2014-07-24T14:41:26.510 回答
0

您是否尝试过“/usr/bin/python”而不是“python”?

ps斧头| grep python 会给你你可以使用的路径。

于 2014-05-15T10:35:48.680 回答