我花了两天的时间去了解为什么我不能在我的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服务器一样。
crontab -e
。 * * * * * /usr/bin/uptime > /tmp/uptime
cat /tmp/uptime
)中创建。 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行中使用了相对路径而不是绝对路径。