gpt4 book ai didi

linux - 通过 cron 为 django 运行 python 脚本

转载 作者:太空狗 更新时间:2023-10-29 12:21:53 25 4
gpt4 key购买 nike

我有一个连接到外部主机的 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不会运行!我在日志文件中没有发现任何错误。我敢肯定这是非常简单的事情,但我只是没有看到它...

最佳答案

问题实际上是我有一个环境变量来告诉 django 它是在开发中运行还是在生产中运行。 Crontab 不执行我导出此变量的 .bashrc 文件,因此必须将其添加到我的 shell 脚本中:

export FLAVOR=live
export PYTHONPATH=$PYTHONPATH:/home/django/project_dir/
cd ~/project_dir/scripts/
~/virtualenv/bin/python my_script.py

关于linux - 通过 cron 为 django 运行 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3442896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com