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 # 删除天前的备份文件