根据mongo数据库列表动态备份

这篇博客介绍了如何使用Shell脚本与MongoDB交互,动态获取不同服务器上数据库的表名。由于数据库表可能会有增减,固定列表的方式不再适用。博主提供了通过执行mongo命令`show dbs`来获取数据库列表,并过滤出特定数据库,进一步获取其表名的方法。此脚本适用于需要动态管理MongoDB表结构的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求

不同服务器上的mongo数据库可能不一样,而且可能数据库表会增加或者删减。因此写成固定的列表无法满足需求

方案

通过与shell交互操作实现mongo命令查看数据库表项

代码

#!/bin/bash

set -x
# collections=mongo $dbName --eval "db.getCollectionNames()"
# echo $collections
ret=`mongo << EOF
show dbs
EOF`

# mongo version format xx.xx.xx
dbRet=`echo $ret|grep -Eo "version: .+"|sed 's/version:[[:space:]][0-9]\{1,2\}\.[0-9]\{1,2\}\.[0-9]\{1,2\}[[:space:]]//g'|sed 's/[[:space:]]bye//g'`

# get db name
n=0
dbList=()
for i in ${dbRet[@]}
do
        if [[ `echo $i |grep GB` ]]
        then
                continue
        fi

        dbList[n]=$i
        let n++
done
echo -----dbList:${dbList[*]}-----
# 后面遍历或者其它处理即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值