【问题标题】:Beanstalk Cronjobs using django-cron使用 django-cron 的 Beanstalk Cronjobs
【发布时间】:2018-01-30 17:33:47
【问题描述】:

我正在尝试使用 django-cron 在我的 elasticbeanstalk ec2 实例上运行 cronjobs。

我创建了一个 cronjob.cron:

*/5 * * * * root /opt/python/run/venv/bin/python3 /opt/python/current/app/manage.py runcrons >> /var/log/cronjobs.log

并使用命令添加文件:

container_commands:
  06_runcrons:
    command: "cat .ebextensions/cronjobs.cron > /etc/cron.d/djangocrons && chmod 644 /etc/cron.d/djangocrons"
    leader_only: true

cron 似乎在运行,但没有任何内容打印到我的 /var/log/cronjobs.log 中(应该每 5 分钟打印一次)。

我无法手动测试 ec2 实例上的脚本,因为我使用 aws:elasticbeanstalk:application:environment: 添加的环境变量在 ec2-user 或 root 中都不存在。这些环境变量被写入哪里?它们仅在部署期间出现吗? 服务器本身工作正常,所以我的 db 环境变量工作正常。

我是否需要为我的 cronjobs 使用其他用户?我该如何解决这个问题?

编辑: 删除用户喜欢:

*/5 * * * * /opt/python/run/venv/bin/python3 /opt/python/current/app/manage.py runcrons >> /var/log/cronjobs.log

结果

(CRON) bad username (/etc/cron.d/djangocrons)

在我的 /var/log/cron 中

【问题讨论】:

  • 你试过没有root(又名*/5 * * * * /opt/python/run/venv/bin/python3 /opt/python/current/app/manage.py runcrons >> /var/log/cronjobs.log)吗?
  • 用答案更新了我的问题

标签: python django amazon-web-services cron amazon-elastic-beanstalk


【解决方案1】:

通过在 /opt/python/current/env 中添加获取 env 变量的文件来解决它

*/5 * * * * root source /opt/python/current/env && /opt/python/run/venv/bin/python3 /opt/python/current/app/manage.py runcrons >> /var/log/cronjobs.log

【讨论】:

    猜你喜欢
    • 2013-05-29
    • 2023-03-31
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 2016-06-30
    • 2019-10-17
    • 2018-01-12
    • 2019-05-28
    相关资源
    最近更新 更多