【发布时间】:2011-03-27 10:52:57
【问题描述】:
我有一个 python 脚本,它连接到外部主机,获取一些数据,并用数据填充 Django 数据库。填充数据库的 python 脚本使用这些行来设置 django 环境:
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中是否显示任何内容? -
有理由不使用管理命令吗?
-
我在 cron 日志中得到了 cronjob 在指定时间运行的条目,所以那里没有问题。