使用Bash for MongoDB备份脚本从json文件中获取单行密钥值对

o0lyfsai  于 2022-10-22  发布在  Go
关注(0)|答案(2)|浏览(139)

我有一个配置文件,位于~/.config/server_config.json中
此json文件包含以下信息:

{
    "server_name": "server1",
    "mongodb_url":"mongodb://user:password@localhost:27017/dbname"
    "other stuff": "stuff2"
}

我有一个bash脚本,我在一个cronjob中使用它,它将每天、每月、每周执行一次mongoump,并执行自动轮换备份、gzip等。
我希望能够检查此配置文件中是否存在mongodb_url。
如果存在,请使用包含用户名和密码URL传递给mongoump脚本。
如果json文件中不存在MongoDB url,则使用没有身份验证的本地主机正常运行mongoump命令。
以下是备份脚本中的一段代码

else # daily
    echo "Starting critical tables daily backup $(date)" >> $LOG_LOCATION
    for DATABASE in ${FULL_BACKUPS_ONLY_LIST//,/ }
        do
            for TABLE in ${CRITICAL_TABLES_LIST//,/ }
            do
                    echo "backing up $DATABASE $TABLE ..."
                    mongodump -d $DATABASE -c $TABLE --out $FINAL_BACKUP_DIR
            done
        done
fi

我基本上希望能够解析这个json文件,以使用包含用户名和密码的正确的MongoDB url。
由于使用bash解析json似乎非常困难,我正在考虑首先使用python来解析json文件,然后将url作为输入参数发送到bash脚本中。除非有什么塞德/奥克魔法可以发生。

oxosxuxt

oxosxuxt1#

您可以使用jq bash命令来解析JSON文件。

  • 示例test.json文件内容:*
{
    "a": 1,
    "b": 2,
    "c": 4
}

Bash命令:jq '.b' test.json
输出:2

xxhby3vn

xxhby3vn2#

使用jq解析JSON。

jq -r '.mongodb_url' ~/.config/server_config.json

相关问题