python - 使用 BASH 为 mongodb 备份脚本从 json 文件中获取单行键值对
问题描述
我有一个位于 ~/.config/server_config.json 的配置文件
此 json 文件包含以下信息:
{
"server_name": "server1",
"mongodb_url":"mongodb://user:password@localhost:27017/dbname"
"other stuff": "stuff2"
}
我有一个 bash 脚本,我在 cronjob 中使用,它将每天、每月、每周执行一次 mongodump,并执行自动轮换备份、gzip 等。
我希望能够检查这个配置文件是否存在 mongodb_url。
如果存在,请使用包含用户名和密码的 url 传递到 mongodump 脚本。
如果 json 文件中不存在 mongodb url,请使用 localhost 正常运行 mongodump 命令,无需身份验证。
这是备份脚本的一个片段
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。
我正在考虑使用 python 首先解析 json 文件,然后将 url 作为输入参数发送到 bash 脚本中,因为用 bash 解析 json 似乎非常困难。除非有一些 sed/awk 魔法可以发生。
解决方案
您可以使用jq
bash 命令解析 JSON 文件。
示例test.json
文件内容:
{
"a": 1,
"b": 2,
"c": 4
}
bash 命令:jq '.b' test.json
输出:2
推荐阅读
- python - 如何将多个数组放入一个带有标题 Python 的 csv 文件
- visual-studio-code - .vscode/settings.json 和 .code-workspace 有什么区别
- php - 403 The request could not be seen response when hit the Cowin API
- swift - FSCalendar - 我想在 longPressGesture 上选择日期。迅速
- android - 比较两个 Android Rect 位置的更优雅的方法?
- python - 通过 pip -r requirements.txt 安装依赖项
- python - Django 模板四舍五入到最近的非零
- angular - 如何在 Angular 11 中重新渲染元素
- sql - 会计在 SQL(ssms) 中计算借方贷方
- java - 识别一个按钮点击列表视图android