我有一个使用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运行或者它是否正在运行但是还有其它错误。
任何人都可以看到错误或缺失的东西吗?
答案 0 :(得分:1)
正如您所指出的,可能是cron作业根本没有运行,或者由于某种错误而失败。
有一件事可以帮助临时在crontab中设置MAILTO=youremail@yourdomain.com
。这样,cron会通过电子邮件向您发送任何输出。
希望这会从您的cronjob中产生一些错误消息,以帮助您诊断问题。
如果您没有收到任何电子邮件,那么cron作业根本就没有运行(或者您的系统无法发送电子邮件......)此时,您将会这样做需要阅读您操作系统的cron系统,看看是否有错过的步骤。
调试cron作业的另一种有用方法是通过sudo
以交互方式运行它们,这应该为您提供与cron在路径,变量等方面运行作业时将使用的相同类型的环境。