AWS Elastic Beanstalk 中的 Cron 来触发 js 文件
Posted
技术标签:
【中文标题】AWS Elastic Beanstalk 中的 Cron 来触发 js 文件【英文标题】:Cron in AWS Elastic Beanstalk to fire js file 【发布时间】:2020-08-07 09:44:39 【问题描述】:我试图在 AWS Elastic Beanstalk 环境中的 CRON 中每分钟触发 js 文件。然而,该文件永远不会被触发。
这是我的 EB cron 配置。我把它放在.ebextensions
并命名为cron-linux.config
:
files:
"/etc/cron.d/mycron":
mode: "000644"
owner: root
group: root
content: |
* * * * * root /usr/local/bin/myscript.sh
"/usr/local/bin/myscript.sh":
mode: "000755"
owner: root
group: root
content: |
#!/bin/bash
date > /tmp/date // inside here I can see actual date so cron works
node ./var/app/current/scripts/testCrobJob.js //this file is not fired
exit 0
commands:
remove_old_cron:
command: "rm -f /etc/cron.d/mycron.bak"
我怎样才能让它工作?
【问题讨论】:
【参考方案1】:运行此代码的修改版本以创建一个文件。
文件: ./.ebextensions/cron-linux.config
files:
"/etc/cron.d/mycron":
mode: "000644"
owner: root
group: root
content: |
* * * * * root /usr/local/bin/myscript.sh
"/usr/local/bin/myscript.sh":
mode: "000755"
owner: root
group: root
content: |
#!/bin/bash
date > /tmp/date // inside here I can see actual date so cron works
node /tmp/test.txt // <----- THIS WAS CREATED
exit 0
commands:
remove_old_cron:
command: "rm -f /etc/cron.d/mycron.bak"
您可能需要删除多余的点 a 开头,因为这会将目录设置为 ./var
与根 /var
路径的相对路径。
如果您可以通过 SSH 连接到机器并在其中手动运行该代码,您应该能够看到错误。
潜在解决方案:
node /var/app/current/scripts/testCrobJob.js
【讨论】:
@murakami 让我知道这是否是答案,以便我们将其标记为正确。如果没有,请告诉我,以便我尝试调试它。以上是关于AWS Elastic Beanstalk 中的 Cron 来触发 js 文件的主要内容,如果未能解决你的问题,请参考以下文章
AWS Elastic Beanstalk 中的 Python:私有包依赖项
AWS Elastic Beanstalk 中的 mysqlclient 安装错误
一个 AWS 账户中的 Elastic Beanstalk 能否与另一个 AWS 账户中的 RDS 通信?
如何解决 AWS Elastic Beanstalk 中的“容器命令构建失败”一般错误?