备份数据库

mysql

#!/bin/sh
NAMESPACE='test'
ROUTE_DIR=`df |sort -k 2 -rn|grep -v 1K-blocks|grep /dev/| head -n 1 | awk '{print $6}'`
MYSQL_PO=`kubectl get po -n $NAMESPACE  | grep mysql | awk '{print $1}'`
echo $ROUTE_DIR
mkdir -p $ROUTE_DIR/backup/mysql_bak_list
TAR_DIR=$ROUTE_DIR/backup/mysql_bak_list # 备份存放路径
DATE=`date +%Y_%m_%d` # 获取当前系统时间
DB_USER=root # 数据库账号
DB_PASS=root # 数据库密码
DAYS=8  # DAYS=30代表删除30天前的备份,即只保留最近30天的备份
if [ ! -d "$TAR_DIR/$DATE" ]; then
    mkdir  -p $TAR_DIR/$DATE
fi
cd $TAR_DIR
kubectl exec $MYSQL_PO -n  $NAMESPACE  -it -- mysqldump  -u$DB_USER  -p$DB_PASS --all-databases >$TAR_DIR/$DATE/mysqlback.sql;
find $TAR_DIR/ -mtime +$DAYS -delete # 删除天前的备份文件

mongodb

#!/bin/sh
ROUTE_DIR=`df |sort -k 2 -rn|grep -v 1K-blocks|grep /dev/| head -n 1 | awk '{print $6}'`
echo $ROUTE_DIR
mkdir -p $ROUTE_DIR/backup/mongo_bak_now
mkdir -p $ROUTE_DIR/backup/mongo_bak_list
DUMP=mongodump # mongodump备份文件执行路径
OUT_DIR=$ROUTE_DIR/backup/mongo_bak_now # 临时备份目录
TAR_DIR=$ROUTE_DIR/backup/mongo_bak_list # 备份存放路径
DATE=`date +%Y_%m_%d` # 获取当前系统时间
DB_USER=root # 数据库账号
DB_PASS=root# 数据库密码
DB_NAME1=observation-site-operate-service # 要备份的数据恢复库名字
DB_NAME2=file-base-server-db
DB_NAME3=iot-mongo-sink-server-db
DB_NAME4=ipes-data-computer-db
DAYS=8 # DAYS=30代表删除30天前的备份,即只保留最近30天的备份
TAR_BAK1="$DB_NAME1.tar.gz" # 最终保存的数据库备份文件名
TAR_BAK2="$DB_NAME2.tar.gz" # 最终保存的数据库备份文件名
TAR_BAK3="$DB_NAME3.tar.gz" # 最终保存的数据库备份文件名
TAR_BAK4="$DB_NAME4.tar.gz" # 最终保存的数据库备份文件名
cd $OUT_DIR
rm -rf $OUT_DIR/*
$DUMP -h 127.0.0.1 --port 30001 -u $DB_USER -p $DB_PASS --authenticationDatabase admin -d $DB_NAME1 -o $OUT_DIR/$DB_NAME1/$DATE # 备份全部数据库
$DUMP -h 127.0.0.1 --port 30001 -u $DB_USER -p $DB_PASS --authenticationDatabase admin -d $DB_NAME2 -o $OUT_DIR/$DB_NAME2/$DATE
$DUMP -h 127.0.0.1 --port 30001 -u $DB_USER -p $DB_PASS --authenticationDatabase admin -d $DB_NAME3 -o $OUT_DIR/$DB_NAME3/$DATE
$DUMP -h 127.0.0.1 --port 30001 -u $DB_USER -p $DB_PASS --authenticationDatabase admin -d $DB_NAME4 -o $OUT_DIR/$DB_NAME4/$DATE
tar -zcvf $TAR_DIR/$TAR_BAK1 $OUT_DIR/$DB_NAME1/$DATE # 压缩为.tar.gz格式
tar -zcvf $TAR_DIR/$TAR_BAK2 $OUT_DIR/$DB_NAME2/$DATE
tar -zcvf $TAR_DIR/$TAR_BAK3 $OUT_DIR/$DB_NAME3/$DATE
tar -zcvf $TAR_DIR/$TAR_BAK3 $OUT_DIR/$DB_NAME4/$DATE
find $TAR_DIR/ -mtime +$DAYS -delete # 删除天前的备份文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值