cronからDjango管理コマンドを実行しようとしています。プロジェクトをサンドボックス化するためにvirtualenvを使用しています。
私はここや他の場所で、virtualenv内から実行されている管理コマンドを示す例を見てきました。
0 3 * * * source /home/user/project/env/bin/activate && /home/user/project/manage.py command arg
ただし、syslogはタスクを開始する必要があるときにエントリを表示しますが、このタスクが実際に実行されることはありません(スクリプトのログファイルは空です)。シェルから手動で行を実行すると、期待どおりに機能します。
現在、コマンドをcron経由で実行できるようにする唯一の方法は、コマンドを分割して、ダムbashラッパースクリプトに配置することです。
#!/bin/sh
source /home/user/project/env/bin/activate
cd /home/user/project/
./manage.py command arg
編集:
arsは、コマンドの有効な組み合わせを考え出しました。
0 3 * * * cd /home/user/project && /home/user/project/env/bin/python /home/user/project/manage.py command arg
少なくとも私の場合、virtualenvのアクティブ化スクリプトを呼び出しても何も起こりませんでした。これは、ショーでも同様に機能します。