如何在 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。
以下是引入此类脚本的步骤:
- 在项目的根目录中创建一个 /.ebextensions 文件夹
- 创建文件/.ebextension/populate_cron.config
- 在该文件中输入以下文本:
container_commands:
populate_cron:
command: crontab -l | { cat; echo "0 0 0 0 0 your command"; } | crontab -
leader_only: true
(注意这是一个yaml文件,所以缩进保持原样)
- 提交此文件并
eb deploy
- env 启动后,
eb ssh
查看 cron 是否存在
post 答案有点晚,但主要是你需要 运行 crontab -e
这将打开一个 crontab 文件。然后,您可以按如下方式添加所有职位:
* * * * * /path/to/your/command
5*
表示永远每一分钟,所以你需要相应地配置它。您也可以查看此 guide。
我已经在 AWS Elasticbeanstalk 上部署了我的 laravel 项目,并且我有一个 cronjob 任务。如何将其配置为 运行?我看到了多个答案,但它们要么不再有效、过于复杂,要么没有得到很好的描述。我可以遵循任何类型的 guide/steps 吗?
在许多部署服务中有 cpanel,我可以在其中轻松配置 cronjob,但说明它存在的路径,但我在 AWS 上找不到任何相关内容。
cpanel 甚至 ssh 访问在这里都帮不了您,因为 Elastic Beanstalk 可以根据需要替换您的服务器实例。这意味着如果您使用 cpanel,您的更改将在下次 EB 决定启动新服务器时丢失。
现在,为了确保正确填充您的 cron,您需要使用 .ebextensions 机制。这是一个小脚本,在新服务器启动时 运行 可以填充您的 cron。
以下是引入此类脚本的步骤:
- 在项目的根目录中创建一个 /.ebextensions 文件夹
- 创建文件/.ebextension/populate_cron.config
- 在该文件中输入以下文本:
container_commands:
populate_cron:
command: crontab -l | { cat; echo "0 0 0 0 0 your command"; } | crontab -
leader_only: true
(注意这是一个yaml文件,所以缩进保持原样)
- 提交此文件并
eb deploy
- env 启动后,
eb ssh
查看 cron 是否存在
post 答案有点晚,但主要是你需要 运行 crontab -e
这将打开一个 crontab 文件。然后,您可以按如下方式添加所有职位:
* * * * * /path/to/your/command
5*
表示永远每一分钟,所以你需要相应地配置它。您也可以查看此 guide。