2017-08-22 75 views
0

我試圖讓我的elasticbeanstalk ec2實例使用django-cron運行cronjobs。使用django-cron的豆莖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 /日誌/ cronjobs。日誌(它應該每隔5分鐘)。

我無法手動測試ec2實例上的腳本,因爲我使用aws:elasticbeanstalk:application:environment:添加的環境變量既不與ec2-user或root一起出現。這些環境變量寫在哪裏?他們是否只在部署期間存在? 服務器本身工作正常,所以我的數據庫環境變量的工作。

我是否需要爲我的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 /日誌/ cron的

+0

你試過沒有根目錄嗎(又名'*/5 * * * */opt/python/run/venv/bin/python3 /opt/python/current/app/manage.py runcrons >>/var/log/cronjobs .log')? – kshikama

+1

用答案更新了我的問題 – Julian

回答

0

通過添加源的ENV文件解決它變量在/ 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.log