如何在AWS Elastic BeanStalk上配置和运行crontab?

时间:2015-01-29 11:50:07

标签: laravel amazon-web-services cron elastic-beanstalk

我已经在AWS Elasticbeanstalk上部署了我的laravel项目,我有一个cronjob任务。如何配置它运行?我已经看到了多个答案,但要么它们不再有效,太复杂或没有很好地描述。我可以遵循哪种指南/步骤来做到这一点?

在许多部署服务中,我可以轻松配置cronjob,但说明它存在的路径,但我无法在AWS上找到任何内容。

2 个答案:

答案 0 :(得分:0)

cpanel甚至ssh访问对您没有帮助,因为Elastic Beanstalk可以根据需要替换您的服务器实例。这意味着如果您使用cpanel,那么下次EB决定启动新服务器时您的更改将会丢失。
现在,为了确保正确填充cron,您需要使用 .ebextensions 机制。它是一个小脚本,在新服务器旋转时运行,并且可以填充你的cron 以下是介绍此类脚本的步骤:

  1. 在项目的根目录中创建/.ebextensions文件夹
  2. 创建文件/.ebextension/populate_cron.config
  3. 在该文件中输入以下文字:
  4. container_commands: populate_cron: command: crontab -l | { cat; echo "0 0 0 0 0 your command"; } | crontab - leader_only: true (请注意,这是一个yaml文件,因此请保持缩进)

    1. 提交此文件并eb deploy
    2. 在env启动后,eb ssh看到cron在那里

答案 1 :(得分:0)

发布答案有点迟,但主要是你需要运行crontab -e来打开crontab文件。然后,您可以按如下方式添加所有作业:

* * * * * /path/to/your/command

5 *意味着永远每分钟,所以你需要相应地配置它。您也可以查看此guide