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

How do I get cron jobs running in container_commands on aws

我有一个 rails 3.2 应用程序,它使用 ruby 1.9.3

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

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

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 没有像预期的那样清除文件夹。不确定是什么阻止了 运行ning 的 cron,或者如果它是 运行ning 但其他问题是错误的。

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

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

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

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

如果您没有收到任何电子邮件,则 cron 作业根本没有 运行ning(或者您的系统无法发送电子邮件...)到那时,您将需要阅读您操作系统的 cron 系统,看看您是否遗漏了某个步骤。

调试 cron 作业的另一种有用方法是 运行 通过 sudo 以交互方式进行它们,这应该为您提供与 cron 在 运行路径、变量等方面的作业