Python 使用django cron的Beanstalk Cronjobs
我正在尝试使用django cron在elasticbeanstalk ec2实例上运行cronjobs 我创建了一个cronjob.cron:Python 使用django cron的Beanstalk Cronjobs,python,django,amazon-web-services,cron,amazon-elastic-beanstalk,Python,Django,Amazon Web Services,Cron,Amazon 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:
*/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似乎正在运行,但没有任何内容被打印到my/var/log/cronjobs.log中(它应该每隔5分钟打印一次)
我无法在ec2实例上手动测试脚本,因为我使用aws:elasticbeanstalk:application:environment:
添加的环境变量既不存在于ec2用户中,也不存在于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)
在my/var/log/cron中,通过在/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
您是否尝试过不使用root(aka
*/5****/opt/python/run/venv/bin/python3/opt/python/current/app/manage.py runcrons>>/var/log/cronjobs.log
)?用答案更新了我的问题