用python运行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 

显示一切function。 我试过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-notwork ,仍然没有运气

  1. 验证cron正在运行: ps aux | grep [c]ron ps aux | grep [c]ron应该显示正在运行的cron进程
  2. 从命令中删除重定向,以便cron通过电子邮件将您输出
  3. 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 -e编辑用户的crontab永远不会来自其他平台,或者直接编辑文件。
  8. 运行crontab -l | cat -A crontab -l | cat -A以便我们可以验证所有的控制字符是正确的。

你有没有检查以下几点?

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

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

    • #!/usr/bin/python

之后,应该执行下面的crontab

 0 * * * * /home/ec2-user/code1.py >/dev/null 2>&1 

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

正如其他人已经指出的那样,将输出和错误重定向到/dev/null基本上使调试成为不可能,所以不要这样做。 如果你的程序创建了详细的非信息输出,在一个可以过滤出简单的诊断的包装器中运行它,或者如果它是你自己的程序,重写它在正常运行时静静地运行。

你试过“/ usr / bin / python”而不是“python”吗?

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

尝试这个命令,应该希望你的python是:

 which python 

很可能你会有类似的东西

 /usr/bin/python /home/ec2-user/code1.py