Unix 无法让cron在Amazon EC2上工作?
我花了两天时间试图理解为什么我不能让cron在我的ubuntuec2实例上工作。我读过。有人能帮忙吗?我只想找份工作 我使用一个简单的wget命令来测试cron。我已经通过命令行验证了这一点:Unix 无法让cron在Amazon EC2上工作?,unix,ubuntu,amazon-ec2,cron,Unix,Ubuntu,Amazon Ec2,Cron,我花了两天时间试图理解为什么我不能让cron在我的ubuntuec2实例上工作。我读过。有人能帮忙吗?我只想找份工作 我使用一个简单的wget命令来测试cron。我已经通过命令行验证了这一点: /usr/bin/wget-O/home/ubuntu/backups/testfilehttp://www.nytimes.com/ 我的crontab文件如下所示: 02****/usr/bin/wget-O/home/ubuntu/backups/testfilehttp://www.nytimes
/usr/bin/wget-O/home/ubuntu/backups/testfilehttp://www.nytimes.com/
我的crontab文件如下所示:
02****/usr/bin/wget-O/home/ubuntu/backups/testfilehttp://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/
有人有什么建议或可能的解决方案吗
谢谢您的时间。别忘了指定运行它的用户。尝试在您的
/etc/cron.d
文件夹中创建一个新文件,该文件以您希望执行的操作命名,如getnytimes
,并且该文件的内容仅为:
02****root/usr/bin/wget-O/home/ubuntu/backups/testfile您的cron守护进程未运行。运行
ps aux | grep crond
时,结果显示只有grep命令正在运行。无论何时运行ps aux | grep blah
,都要注意这一点
通过运行此命令检查cron服务的状态
尝试:
此处的附加信息:.Cron可以在基于Amazon的linux服务器上运行,就像在任何其他linux服务器上一样
crontab-e
***/usr/bin/uptime>/tmp/uptime
cat/tmp/uptime
)中创建uptime
命令,将其与当前系统正常运行时间进行比较/usr/bin/wget -O /home/ubuntu/backups/testfile http://www.nytimes.com/
给我一个错误
/home/ubuntu/backups/testfile: No such file or directory
这是你的问题吗?
我猜cron没有将此错误写入任何可以将stderr重定向到stdout并看到如下错误的地方:
02 * * * * /usr/bin/wget -O /home/ubuntu/backups/testfile http://www.nytimes.com/ > /home/ubuntu/error.log 2&>1
在我的例子中,cron作业正在工作,但它运行的脚本失败。失败原因是因为我在脚本的include行中使用了相对路径而不是绝对路径。cronjob未运行的可能原因之一:
确保服务器时间和cronjob时间相同。因此我浪费了很多时间。在一些AWS Ubuntu EC2机器上,cron作业无法通过使用
crontab-e
甚至sudo crontab-e
进行编辑或运行(无论出于何种原因)。我能够通过以下方式获得cron作业:
touch/home/ubuntu/crontest.log
创建日志文件sudo vim/etc/crontab
编辑系统范围的crontab***root date&&echo'It works!'>>/home/ubuntu/crontest.log 2>&1
将stdout和stderr转储到步骤1中创建的日志文件中对我来说,诀窍是什么
sudo服务crond状态
sudo服务crond重启
crontab-e
这是否有帮助:我会先尝试一些简单的方法来评估问题是否出在您的命令或其他方面:即尝试放置:echo“xxx”>>/var/tmp/myfile.txt,并通过检查/var/tmp/myfile.txt和:echo“xxx”>/home/ubuntu/backups/testfile.txt来查看它是否运行过?如果将文件放入cron中,它是否能够创建该文件?@maiklos是的,这也可以。尽管如此,我还是无法让crontab工作。这件事我已经做了好几天了。好的,谢谢。我如何告诉cron在创建文件后“运行”该文件?看起来cron应该在文件放置到此处后自动拾取该文件。不幸的是,它仍然不起作用。如果您使用的是“crontab-e”,那么用户就不是必需的——它会打开vi编辑器,您可以在那里为当前用户编辑crontab。格式与根cromtab相同,但没有用户。当我在vi编辑器上按ZZ(或:wq)时,crontab开始运行。用于测试其运行情况的示例cron行:“***/usr/bin/uptime>/tmp/uptime”出现我的cron不工作的情况(守护进程正在运行,因为它正在向日志输出以下消息-无法使用PAM授权用户(模块未知)
)。根据这个答案,用/etc/init.d/crond restart
重新启动守护进程,cron开始工作。重新启动crond也为我做到了这一点。但不知道为什么它一开始就停止工作了。有人知道去哪里找吗?Cron日志文件没有显示任何有趣的内容。我还想找到无法使用PAM授权用户(模块未知)
的实际解决方案,而不是每次重新启动Cron。我经常遇到这种情况。我只在logrotate中使用cron,所以如果驱动器开始充满f
02 * * * * /usr/bin/wget -O /home/ubuntu/backups/testfile http://www.nytimes.com/ > /home/ubuntu/error.log 2&>1