mysql 集群备份脚本_mysqldump结合脚本的备份方案

1、备份脚本的简介

脚本分为两个部分,主控脚本与备份子脚本。

1.1、备份子脚本

-完成mysql基本的备份功能

-自动日期时间命名备份文件(不产生重复名称的备份)

-提供压缩(节省大量的空间)

1.2、主控脚本

-调用备份子脚本(代码复用)

-清理mysql旧的备份文档(可定义多少天内的保留)

2、生成备份脚本

2.1、创建脚本目录mkdir ~/script/

2.2、备份子脚本代码

vim编辑~/script/dbBack.sh#!/bin/bash

user=$1

passwd=$2

dbName=$3

bkDir=$4

dt=$(date +"%Y-%m-%d_%H%M%S")

dbBkName=$dbName-$dt.sql

if [ $dbName == '--all-databases' ]; then

dbBkName="all-databases-"$dt.sql

fi

#echo $user

#echo $passwd

#echo $dbBkName

if [ $dbName == '--all-databases' ]; then

mysqldump -u$user -p$passwd --all-databases > $bkDir$dbBkName

else

mysqldump -u$user -p$passwd $dbName > $bkDir$dbBkName

fi

tar -zcvf $bkDir$dbBkName.tar.gz $bkDir$dbBkName

rm -rf $bkDir$dbBkName

2.3、主控脚本代码

2.3.1 单库备份

vim编辑~/script/dbMan.sh#!/bin/bash

bkDir=/var/lib/backup/

wkDir=~/script/

user=mysql_user #数据库的用户名

passwd=mysql_password #数据库的密码

saveTime=7 #多少天之内的保留,7天之外的删除

if [ ! -d $bkDir ]; then

mkdir -p $bkDir

fi

cd $wkDir

sh dbBack.sh $user $passwd db1 $bkDir

sh dbBack.sh $user $passwd db2 $bkDir

cd $bkDir

#find -name "*.gz" -ctime +$saveTime -exec ls {} \;

find -name "*.gz" -ctime +$saveTime -exec rm -rf {} \;

注:修改13-14行备份数据库db1、db2

2.3.2 备份所有的库#!/bin/bash

bkDir=/var/lib/backup/

wkDir=~/script/

user=mysql_user #数据库的用户名

passwd=mysql_password #数据库的密码

saveTime=7 #多少天之内的保留,7天之外的删除

if [ ! -d $bkDir ]; then

mkdir -p $bkDir

fi

cd $wkDir

sh dbBack.sh $user $passwd --all-databases $bkDir

cd $bkDir

#find -name "*.gz" -ctime +$saveTime -exec ls {} \;

find -name "*.gz" -ctime +$saveTime -exec rm -rf {} \;

注:13行备份所有的数据库

3、使用脚本

编辑计划任务:crontab -e

加入如下内容:0 */1 * * * sh  ~/script/dbMan.sh

以上1个小时产生一个备份

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值