用python运行crontab

rod*_*ing 3 python linux crontab

Python crontab脚本似乎不起作用.当我手动运行时,

python /home/ec2-user/code1.py
Run Code Online (Sandbox Code Playgroud)

它工作正常但是当放入crontab的cron.txt文件时,不行.

我的crontab文件是:

 @hourly python /home/ec2-user/code1.py >/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

我也试过了

0    *    *    *    * python /home/ec2-user/code1.py >/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

但是没有太多运气.

sudo crontab -l
@hourly python /home/ec2-user/code1.py >/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

显示一切功能.我试过Crontab没有运行我的python脚本,并且其他人也没有运气.

编辑:

PATH=/opt/python2.7/bin  
MAILTO=my@email
*/5 * * * * /home/ec2-user/code1.py
Run Code Online (Sandbox Code Playgroud)

我得到的电子邮件是:

 /bin/sh: /home/ec2-user/code1.py : No such file or directory
Run Code Online (Sandbox Code Playgroud)

但我可以打开并编辑文件没问题.我尝试了很多不同的东西,但它归结为:cron没有看到文件.

感觉像我经历了整个https://askubuntu.com/questions/23009/reasons-why-crontab-does-not-work 仍然没有运气

Dou*_*der 6

  1. 验证cron正在运行: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以便我们可以验证所有控制字符是否正确.

  • @roding ..那些^ M $是罪魁祸首.重来; `crontab -r`和*按照步骤7.*就像我对这个问题发表评论一样,你可以设置`EDITOR`来控制启动哪个编辑器.记事本用户往往更喜欢`pico`而不是'vim` (2认同)