使用django-cron的Beanstalk Cronjobs

时间:2017-08-22 12:20:01

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

我试图使用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中。这些环境变量写在哪里?它们仅在部署期间存在吗? 服务器本身工作正常,因此我的数据库环境变量可以正常工作。

我是否需要为我的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

1 个答案:

答案 0 :(得分: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