首页 > 解决方案 > 如何为 crontab 设置嵌套(类似 json)环境变量

问题描述

我有环境变量,例如

VAR1={'key1': 5, 'key2': 8}

或者VAR1="{'key1': 5, 'key2': 8}"

在作为环境变量工作的脚本中使用。我想在 .env 文件中使用它,以便与 cron 作业一起使用,如下所示:

* * * * * /etc/.env python script.py > src/out.log

该脚本适用于上述环境变量示例。当我在 docker 容器中使用它并为 docker 指定环境变量时,它也可以工作。

但是,环境变量的语法在与 cron 一起使用时似乎不起作用。这是为什么?

为什么这种语法对于普通的 python 脚本和 docker 是正确的,但对于 cron 是不正确的?

cron 正在输出:

.env: 1: 5,} not found

标签: pythondockercronenvironment-variables

解决方案


我认为你必须这样写:

* * * * * /bin/bash -c "/etc/.env python script.py > src/out.log"

错误消息似乎执行/etc/.env文件。


推荐阅读