在 Elastic Beanstalk 上创建 cronjob 时遇到问题
Posted
技术标签:
【中文标题】在 Elastic Beanstalk 上创建 cronjob 时遇到问题【英文标题】:Trouble creating cronjob on Elastic Beanstalk 【发布时间】:2020-08-19 22:46:02 【问题描述】:我在 Elastic Beanstalk 上运行 php Web 环境。 Iv 尝试了 6 种方法到周日来设置 cronjob: 按照 .ebextensions 文件夹中 cronjobs 的 AWS 模板, 使用以下命令在 shell 中手动创建作业: crontab -e 此处建议 https://***.com/questions... 等等...
目前我在 .ebextensions 文件夹中将此配置文件保存为 cron-linux.config
files:
"/etc/cron.d/mycron":
mode: "000644"
owner: root
group: root
content: |
*/3 * * * * root /var/www/html/crawler/mine.php >/dev/null 2>&1
commands:
remove_old_cron:
command: "rm -f /etc/cron.d/mycron.bak"
请帮忙!
【问题讨论】:
有什么问题?有任何错误信息吗? 我可以手动运行脚本,没问题,但我不能让它每 3 分钟运行一次。或按任何时间表。我没有看到任何错误消息。你有什么建议?mine.php
只是作为常规 bash 脚本工作?它不必通过常规的bash
脚本或通过 php 解释器执行?
实际上它必须作为 php 脚本执行,而不是 bash 脚本
更新:感谢 Marcin,cron 现在正在运行。不幸的是,php 脚本不是从 bash 脚本运行的。有什么想法吗?
【参考方案1】:
成功!
解决问题的步骤:
-
使用AWS示例Cron Job后发现HERE,
从 bash 脚本运行 PHP 脚本:
#!/bin/bash
php -f /var/www/html/mine.php
exit 0
然后使用“mine.php”可执行文件
sudo chmod +x mine.php
两个问题:
必须对数据库的连接详细信息进行硬编码,因为 $SERVER 变量不起作用(不确定原因)
发送带有结果的电子邮件的脚本部分仍然不起作用。
不确定为什么从浏览器运行脚本但在 bash 中运行脚本时有些事情会起作用?但至少 Cron 工作正在发挥作用。
希望这对某人有所帮助
【讨论】:
以上是关于在 Elastic Beanstalk 上创建 cronjob 时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章
无法在 AWS Elastic Beanstalk 上创建新的 RDS 数据库
在 Elastic Beanstalk 上使用 Docker 部署 Flask 应用程序:资源创建取消错误
无法在 Elastic Beanstalk 上部署节点:命令“/bin/sh -c npm install”返回非零代码:1
Amazon Elastic Beanstalk 在创建新环境时创建服务器实例