如何在 AWS ElasticBeanStalk 上配置和 运行 cronjob?

How to configure and run cronjob on AWS ElasticBeanStalk?

我已经在 AWS Elasticbeanstalk 上部署了我的 laravel 项目,并且我有一个 cronjob 任务。如何将其配置为 运行?我看到了多个答案,但它们要么不再有效、过于复杂,要么没有得到很好的描述。我可以遵循任何类型的 guide/steps 吗?

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

cpanel 甚至 ssh 访问在这里都帮不了您,因为 Elastic Beanstalk 可以根据需要替换您的服务器实例。这意味着如果您使用 cpanel,您的更改将在下次 EB 决定启动新服务器时丢失。
现在,为了确保正确填充您的 cron,您需要使用 .ebextensions 机制。这是一个小脚本,在新服务器启动时 运行 可以填充您的 cron。
以下是引入此类脚本的步骤:

  1. 在项目的根目录中创建一个 /.ebextensions 文件夹
  2. 创建文件/.ebextension/populate_cron.config
  3. 在该文件中输入以下文本:

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 是否存在

post 答案有点晚,但主要是你需要 运行 crontab -e 这将打开一个 crontab 文件。然后,您可以按如下方式添加所有职位:

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

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