【问题标题】:How to set nested (json like) environment variables for crontab如何为 crontab 设置嵌套(类似 json)环境变量
【发布时间】:2021-04-09 00:51:25
【问题描述】:

我有环境变量如

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

【问题讨论】:

  • 环境变量是在 .env 文件中还是在操作系统中?你也可以试试VAR1='{"test1": 1, "test2": 2}' 然后json.loads(os.getenv('VAR1'))
  • 它在 .env 文件中。我正在像这样加载变量printenv > /etc/.env

标签: python docker cron environment-variables


【解决方案1】:

我认为你必须这样写:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-05
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 2020-02-14
    • 1970-01-01
    • 2011-02-13
    • 2018-09-25
    相关资源
    最近更新 更多