【问题标题】:Trouble creating cronjob on Elastic Beanstalk在 Elastic Beanstalk 上创建 cronjob 时遇到问题
【发布时间】:2020-08-19 22:46:02
【问题描述】:

我在 Elastic Beanstalk 上运行 PHP Web 环境。 Iv 尝试了 6 种方法到周日来设置 cronjob: 按照 .ebextensions 文件夹中 cronjobs 的 AWS 模板, 使用以下命令在 shell 中手动创建作业: crontab -e 此处建议 https://stackoverflow.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 脚本运行的。有什么想法吗?

标签: php linux amazon-web-services amazon-elastic-beanstalk


【解决方案1】:

成功!

解决问题的步骤:

  1. 使用AWS示例Cron Job后发现HERE
  2. 从 bash 脚本运行 PHP 脚本:

    #!/bin/bash
    
    php -f /var/www/html/mine.php
    
    exit 0
    
  3. 然后使用“mine.php”可执行文件

    sudo chmod +x mine.php
    

两个问题:

  1. 必须对数据库的连接详细信息进行硬编码,因为 $SERVER 变量不起作用(不确定原因)

  2. 发送带有结果的电子邮件的脚本部分仍然不起作用。

不确定为什么从浏览器运行脚本但在 bash 中运行脚本时有些事情会起作用?但至少 Cron 工作正在发挥作用。

希望这对某人有所帮助

【讨论】:

    猜你喜欢
    • 2015-04-06
    • 2016-09-16
    • 2017-03-11
    • 2018-11-09
    • 2015-06-18
    • 2021-01-19
    • 1970-01-01
    • 2015-06-28
    • 2015-05-08
    相关资源
    最近更新 更多