crontab 没有获取我当前的环境变量
crontab not getting my current envrioment variables
我想要一个 cron 作业,一切都已经设置好,cron 也在工作,但不幸的是,cron 没有获取我的环境变量。我正在使用 os
获取我的环境变量,它们在整个项目中都运行良好,但在我的 cron 中却没有。
settings.py
SECRET_KEY = os.environ.get('SECRET_KEY')
# Cron Jobs
CRONJOBS = [
('* * * * *', 'projects.cron.notifications_cron', '>> /cron/django_cron.log 2<&1')
]
crontab -e
* * * * /usr/local/bin/python /app/manage.py crontab run 744fbefdbf3ad30bec13
error in log file
raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
当我在 settings.py
中设置硬编码的 SECRET_KEY
时,它工作正常,但我想从我的环境变量中获取它。
您可以将环境变量分配到 crontab 环境文件中 (crontab -e
),因此我将所有环境变量转换为 env.txt
并将 crontab 环境文件合并到 env.txt
文件并用我的 env.txt
.
替换 crontab 环境文件
crontab -e
默认:
0 */24 * * * /usr/local/bin/python /app/manage.py crontab run 5d758d881d8f93b61f4d1b6a43eb72f6 >> /cron/django_cron.log 2<&1 # django-cronjobs for app
如果您像下面那样在该文件中分配一些变量,那么 crontab 将获得该环境。
VARIABLE=value
0 */24 * * * /usr/local/bin/python /app/manage.py crontab run 5d758d881d8f93b61f4d1b6a43eb72f6 >> /cron/django_cron.log 2<&1 # django-cronjobs for app
这里是bash实现的命令
$ printenv > env.txt # this will add all your environment variables in to env.txt
$ cat /var/spool/cron/crontabs/root >> env.txt # this will merge crontab environment file with your env.txt
$ cat env.txt > /var/spool/cron/crontabs/root # this will replace the crontab environment file with your env.txt
这是我自己制作的唯一解决方案,希望它能对你们有所帮助。谢谢
我想要一个 cron 作业,一切都已经设置好,cron 也在工作,但不幸的是,cron 没有获取我的环境变量。我正在使用 os
获取我的环境变量,它们在整个项目中都运行良好,但在我的 cron 中却没有。
settings.py
SECRET_KEY = os.environ.get('SECRET_KEY')
# Cron Jobs
CRONJOBS = [
('* * * * *', 'projects.cron.notifications_cron', '>> /cron/django_cron.log 2<&1')
]
crontab -e
* * * * /usr/local/bin/python /app/manage.py crontab run 744fbefdbf3ad30bec13
error in log file
raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
当我在 settings.py
中设置硬编码的 SECRET_KEY
时,它工作正常,但我想从我的环境变量中获取它。
您可以将环境变量分配到 crontab 环境文件中 (crontab -e
),因此我将所有环境变量转换为 env.txt
并将 crontab 环境文件合并到 env.txt
文件并用我的 env.txt
.
crontab -e
默认:
0 */24 * * * /usr/local/bin/python /app/manage.py crontab run 5d758d881d8f93b61f4d1b6a43eb72f6 >> /cron/django_cron.log 2<&1 # django-cronjobs for app
如果您像下面那样在该文件中分配一些变量,那么 crontab 将获得该环境。
VARIABLE=value
0 */24 * * * /usr/local/bin/python /app/manage.py crontab run 5d758d881d8f93b61f4d1b6a43eb72f6 >> /cron/django_cron.log 2<&1 # django-cronjobs for app
这里是bash实现的命令
$ printenv > env.txt # this will add all your environment variables in to env.txt
$ cat /var/spool/cron/crontabs/root >> env.txt # this will merge crontab environment file with your env.txt
$ cat env.txt > /var/spool/cron/crontabs/root # this will replace the crontab environment file with your env.txt
这是我自己制作的唯一解决方案,希望它能对你们有所帮助。谢谢