我正在尝试使用django-cron在我的弹性ec2实例上运行cronjob。
我创建了一个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: truecron似乎正在运行,但是没有任何内容输出到我的/var/log/cronjobs.log中(它应该每隔5分钟输出一次)。
我无法在ec2实例上手动测试该脚本,因为我使用aws:elasticbeanstalk:application:environment:添加的环境变量既不存在于ec2用户中,也不存在于根用户中。这些环境变量被写到哪里?它们是否仅在部署过程中出现?服务器本身工作得很好,所以我的db环境变量也可以工作。
我的cronjob需要使用其他用户吗?我该如何解决这个问题呢?
编辑:删除用户,如下所示:
*/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中
发布于 2017-08-24 04:02:14
通过在/opt/python/current/env中添加生成环境变量的文件解决了这个问题
*/5 * * * * root source /opt/python/current/env && /opt/python/run/venv/bin/python3 /opt/python/current/app/manage.py runcrons >> /var/log/cronjobs.loghttps://stackoverflow.com/questions/45817494
复制相似问题