首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用django-cron的Beanstalk Cronjob

使用django-cron的Beanstalk Cronjob
EN

Stack Overflow用户
提问于 2017-08-22 20:20:01
回答 1查看 613关注 0票数 0

我正在尝试使用django-cron在我的弹性ec2实例上运行cronjob。

我创建了一个cronjob.cron:

代码语言:javascript
复制
*/5 * * * * root /opt/python/run/venv/bin/python3 /opt/python/current/app/manage.py runcrons >> /var/log/cronjobs.log

并使用命令添加了该文件:

代码语言:javascript
复制
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用户中,也不存在于根用户中。这些环境变量被写到哪里?它们是否仅在部署过程中出现?服务器本身工作得很好,所以我的db环境变量也可以工作。

我的cronjob需要使用其他用户吗?我该如何解决这个问题呢?

编辑:删除用户,如下所示:

代码语言:javascript
复制
*/5 * * * * /opt/python/run/venv/bin/python3 /opt/python/current/app/manage.py runcrons >> /var/log/cronjobs.log

结果:

代码语言:javascript
复制
(CRON) bad username (/etc/cron.d/djangocrons)

在我的/var/log/cron中

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-24 04:02:14

通过在/opt/python/current/env中添加生成环境变量的文件解决了这个问题

代码语言:javascript
复制
*/5 * * * * root source /opt/python/current/env && /opt/python/run/venv/bin/python3 /opt/python/current/app/manage.py runcrons >> /var/log/cronjobs.log
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45817494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档