无法让cron在Amazon EC2上工作?

我花了两天的时间去了解为什么我不能在我的Ubuntu EC2实例上运行cron。 我已阅读文档 。 谁能帮忙? 我只想要得到一个工作的cronjob。

我正在使用一个简单的wget命令来testingcron。 我已经validation,这可以从命令行手动工作:

/usr/bin/wget -O /home/ubuntu/backups/testfile http://www.nytimes.com/

我的crontab文件如下所示:

02 * * * * /usr/bin/wget -O /home/ubuntu/backups/testfile http://www.nytimes.com/

命令之间有单个空格,命令下面有一个空行。 我也试着从系统级sudo crontab -e执行这个命令。 它仍然不起作用。

cron守护进程正在运行:

 ps aux | grep crond ubuntu 2526 0.0 0.1 8096 928 pts/4 S+ 10:37 0:00 grep crond 

cronjob似乎在运行:

 $ crontab -l 02 * * * * /usr/bin/wget -O /home/ubuntu/backups/testfile http://www.nytimes.com/ 

有没有人有任何build议或可能的解决scheme?

谢谢你的时间。

Cron可以在基于Amazon的Linux服务器上运行,就像其他的Linux服务器一样。

  1. 用SSH登录到控制台。
  2. 在命令行上运行crontab -e
  3. 您现在正在当前用户的crontab的vi编辑器(这是默认情况下的控制台用户,具有根权限)
  4. 要测试cron,请添加以下行: * * * * * /usr/bin/uptime > /tmp/uptime
  5. 现在保存文件并退出vi(按Esc并输入:wq)。
  6. 一两分钟后,检查运行时间文件是否在/ tmp( cat /tmp/uptime )中创建。
  7. 通过在命令行上键入uptime命令,将其与当前系统正常运行时间进行比较。

上面的场景在安装了Amazon Linux O / S的服务器上成功运行,但是它也可以在其他Linux机器上运行。 这会修改当前用户的crontab,而不会触及系统的crontab,并且不需要crontab项中的用户,因为您正在自己的用户下运行。 更简单,更安全!

你的cron守护进程没有运行。 当你运行ps aux | grep crond ps aux | grep crond结果显示只有grep命令正在运行。 运行ps aux | grep blah时要注意这一点 ps aux | grep blah

尝试:

 sudo service cron start 

更多信息在这里: http : //www.cyberciti.biz/faq/howto-linux-unix-start-restart-cron/ 。

不要忘记指定用户运行它。 尝试在/etc/cron.d文件夹内创建一个新的文件,命名为getnytimes然后让该文件的内容为:

02 * * * * root / usr / bin / wget -O / home / ubuntu / backups / testfile http://www.nytimes.com/

赛跑

 /usr/bin/wget -O /home/ubuntu/backups/testfile http://www.nytimes.com/ 

给我一个错误

 /home/ubuntu/backups/testfile: No such file or directory 

这是你的问题吗? 我猜cron是不是写这个错误到任何地方你可以重定向stderr标准输出,看到这样的错误:

 02 * * * * /usr/bin/wget -O /home/ubuntu/backups/testfile http://www.nytimes.com/ > /home/ubuntu/error.log 2&>1 

在我的情况下,cron作业正在运行,但脚本失败,运行失败。 失败的原因是由于我在脚本中的include行中使用了相对路径而不是绝对路径。