在 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 在创建新环境时创建服务器实例

Elastic Beanstalk Flask 应用程序上的 HTTPS

Elastic Beanstalk CLI Windows - 无法创建进程错误?