我有一個python腳本,連接到外部主機,獲取一些數據,並用數據填充Django數據庫。用於填充數據庫的Python腳本使用這些線路設置Django的環境:通過cron運行django的python腳本
path = os.path.normpath(os.path.join(os.getcwd(), '..'))
sys.path.append(path)
from django.core.management import setup_environ
import settings
setup_environ(settings)
然後,我有實際運行python腳本一個shell腳本:
export PYTHONPATH=$PYTHONPATH:/home/django/project_dir/
cd ~/project_dir/scripts/
~/virtualenv/bin/python my_script.py
然後我的cron配置,這放在/etc/cron.d/
0 1 * * * django ~/project_dir/scripts/my_script.sh > /var/log/django_cron.log
請注意,django項目有它自己的用戶和虛擬環境。
當我以django用戶身份登錄時,shell腳本運行良好。但是cron不會運行!我在日誌文件中沒有錯誤。我敢肯定這是非常簡單的事情,但我只是沒有看到它...
是否在'/ var/log/cron'中顯示了任何內容? – 2010-08-10 00:33:04
有沒有理由不使用管理命令? – 2010-08-10 07:31:08
我在cron日誌中獲得了cronjob在指定時間運行的條目,所以在那裏沒有問題。 – 2010-08-10 07:59:41