K8s中 备份数据 检查验证(四)--MongoDB备份验证

8 篇文章 0 订阅

检查现行K8s中的MongoDB状况;

status-mongodb.sh

#!/bin/bash


rundir=$(cd $(dirname $0); pwd)
theday=`date +%F`

if [ ! -d "${rundir}/log" ]; then
        mkdir ${rundir}/log
fi

if [ "$*" ];then
        arg=$*
else
        arg="mongodb-0"
fi

echo -e "当前ehome-mongodb数据库中scene的状态:"

kubectl exec ehome-mongodb-0 -n ehome mongo -- --shell "scene" --eval "db.stats()" \
>> ${rundir}/log/mongodb-status-${theday}.txt 

#cat ${rundir}/log/mongodb-stats-${theday}.txt

sed -n '6,20p' ${rundir}/log/mongodb-status-${theday}.txt

运行

验证MongoDB数据;

mongodb-check.sh

#!/bin/bash

rundir=$(cd $(dirname $0); pwd)
theday=`date +%F`

echo -e "=======${theday} ehome-MongoDB备份验证======="

#清除上次验证数据
dbtmpdir="${rundir}/dbtmp/mongodb"
rm -rf ${dbtmpdir} && mkdir ${dbtmpdir} -p

#如果没有参数则搜索当前运行目录下的
if [ "$1" ];then
        baktar=$1
else
        baktar=$(find ${rundir} -name "*mongodb*.tar.gz" | sort -rn | head -1)
fi
if [ ! -e "${baktar}" ];then
        echo "没有找到备份*mongodb*.tar.gz!!!"
        exit 0
fi
echo -e "1.MongoDB备份文件是:\n ${baktar}"

echo -e "2.还原数据库的临时目录:\n ${dbtmpdir}"

echo -e "3.开始还原数据库"
cp -f ${baktar} ${dbtmpdir}/mongodb.tar.gz
cd ${dbtmpdir}
tar -zxvf ${dbtmpdir}/mongodb.tar.gz >> /dev/null 2>&1

docker run -d --name mongo-check -v ${dbtmpdir}:/home mongo:3.6 >> /dev/null 2>&1

docker exec mongo-check bash -c 'exec mongorestore /home/mongodump' >> /dev/null 2>&1

echo -e "解压的备份数据库:${dbtmpdir}/mongodump"

#echo -e "\n======================================" >> ${rundir}/log/mongodb-check.txt
echo -e "=======${theday} ehome-MongoDB备份验证=======" >> ${rundir}/log/mongodb-check.txt
#echo -e "======================================" >> ${rundir}/log/mongodb-check.txt
echo -e "备份文件为:${baktar}" >> ${rundir}/log/mongodb-check.txt
echo -e "数据库验证结果:" >> ${rundir}/log/mongodb-check.txt

echo -e "4.检验数据"

docker exec mongo-check mongo --shell "scene" --eval "db.stats()" \
> ${rundir}/log/mongodb-check-${theday}.txt

docker stop mongo-check >> /dev/null 2>&1
docker rm mongo-check >> /dev/null 2>&1


sed -n '6,20p' ${rundir}/log/mongodb-check-${theday}.txt >> ${rundir}/log/mongodb-check.txt
#sed -i '/^$/d' ${rundir}/log/etcd-check.txt

#cat ${rundir}/log/etcd-check.txt | tr -s "\n" > ${rundir}/log/etcd-check.txt

tail -n 18 ${rundir}/log/mongodb-check.txt
echo -e "验证结果输出:${rundir}/log/mongodb-check.txt"

运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值