如何在aws上的container_commands中运行cron作业

时间:2016-12-09 05:37:29

标签: ruby-on-rails ruby amazon-web-services cron cron-task

我有一个使用ruby 1.9.3

的rails 3.2应用程序

我们需要通过container_commands运行一个cron作业。

目前我在common.config目录中有.ebextensions个文件,其中包含以下内容

container_commands:
  04_clear_old_epubs:
    command: "cat .ebextensions/clear_old_epubs_cron.txt > /etc/cron.d/clear_old_epubs_cron && chmod 644 /etc/cron.d/clear_old_epubs_cron"
    leader_only: true

然后在clear_old_epubs_cron.txt文件中

*/5 * * * * root /usr/bin/php rm -rf /var/app/current/public/epub-download-1/* > /dev/null

#

我从AWS Elastic Beanstalk, running a cronjob

中接受的答案中得到了这个

cron并没有像他们想要的那样清除文件夹。不确定是什么阻止了cron运行或者它是否正在运行但是还有其它错误。

任何人都可以看到错误或缺失的东西吗?

1 个答案:

答案 0 :(得分:1)

正如您所指出的,可能是cron作业根本没有运行,或者由于某种错误而失败。

有一件事可以帮助临时在crontab中设置MAILTO=youremail@yourdomain.com。这样,cron会通过电子邮件向您发送任何输出。

希望这会从您的cronjob中产生一些错误消息,以帮助您诊断问题。

如果您没有收到任何电子邮件,那么cron作业根本就没有运行(或者您的系统无法发送电子邮件......)此时,您将会这样做需要阅读您操作系统的cron系统,看看是否有错过的步骤。

调试cron作业的另一种有用方法是通过sudo以交互方式运行它们,这应该为您提供与cron在路径,变量等方面运行作业时将使用的相同类型的环境。