2017-08-22 1 views
0

Ich versuche Cronjobs auf meinem EQ2 Elasticbeanstalk Instanz mit Django-Cron laufen.Beanstalk Cronjobs mit Django-Cron

habe ich eine cronjob.cron:

*/5 * * * * root /opt/python/run/venv/bin/python3 /opt/python/current/app/manage.py runcrons >> /var/log/cronjobs.log 

und hinzugefügt, um die Datei Befehle:

container_commands: 
    06_runcrons: 
    command: "cat .ebextensions/cronjobs.cron > /etc/cron.d/djangocrons && chmod 644 /etc/cron.d/djangocrons" 
    leader_only: true 

Die cron scheint in mein/var/log/Cronjobs zu laufen, aber wird nichts gedruckt. log (Was es sollte, alle 5 Minuten).

Ich kann das Skript auf der ec2-Instanz nicht manuell testen, da meine Umgebungsvariablen, die ich mit aws:elasticbeanstalk:application:environment: hinzugefügt habe, weder beim ec2-Benutzer noch beim root vorhanden sind. Wohin werden diese Umgebungsvariablen geschrieben? Sind sie nur während der Bereitstellung vorhanden? Der Server selbst funktioniert gut, also funktionieren meine db-Umgebungsvariablen.

Muss ich einen anderen Benutzer für meine Cronjobs verwenden? Wie kann ich das lösen?

Edit: Entfernen der Benutzer wie:

*/5 * * * * /opt/python/run/venv/bin/python3 /opt/python/current/app/manage.py runcrons >> /var/log/cronjobs.log 

Ergebnisse in

(CRON) bad username (/etc/cron.d/djangocrons) 

in meinem/var/log/cron

+0

Haben Sie ohne root versucht (aka '*/5 * * * */opt/python/run/vend/bin/python3 /opt/python/current/app/manage.py runcrons >>/var/log/cronjobs .log')? – kshikama

+1

aktualisierte meine Frage mit der Antwort – Julian

Antwort

0

es Gelöst die Datei hinzufügen, die das env-Quellen Variablen in/opt/python/aktuell/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