Cron bir Django yönetim komutu çalıştırmak çalışıyorum. Projemi korumalı tutmak için virtualenv kullanıyorum.
Burada ve başka yerlerde sanal yönetim içinden çalışan yönetim komutlarını gösteren örnekler gördüm:
0 3 * * * source /home/user/project/env/bin/activate && /home/user/project/manage.py command arg
Ancak, syslog, görevin başlaması gerektiğinde bir girdi göstermesine rağmen, bu görev gerçekte hiçbir zaman çalışmaz (komut dosyasının günlük dosyası boştur). Çizgiyi kabuktan manuel olarak çalıştırırsam, beklendiği gibi çalışır.
Şu anda cron üzerinden çalıştırmak için komut almak, tek yolu komutları kırmak ve aptal bash sarıcı komut dosyası koymaktır:
#!/bin/sh
source /home/user/project/env/bin/activate
cd /home/user/project/
./manage.py command arg
DÜZENLE:
ars çalışan bir komut kombinasyonu ile geldi:
0 3 * * * cd /home/user/project && /home/user/project/env/bin/python /home/user/project/manage.py command arg
En azından benim durumumda, virtualenv için etkinleştirme komut dosyasını çağırmak hiçbir şey yapmadı. Bu, şovla devam ediyor.
env
ve export
hepsini crontab'dan çağırdığınız bir bash komut dosyası sarıcısına dökmektir.