我试图使用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
中答案 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