博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysqldump结合脚本的备份方案
阅读量:6762 次
发布时间:2019-06-26

本文共 1853 字,大约阅读时间需要 6 分钟。

1、备份脚本的简介

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

1.1、备份子脚本

-完成mysql基本的备份功能

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

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

1.2、主控脚本

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

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

2、生成备份脚本

2.1、创建脚本目录

1
mkdir 
~
/script/

2.2、备份子脚本代码

vim编辑~/script/dbBack.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/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 备份所有的库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/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、使用脚本

编辑计划任务:

1
 
crontab 
-e

加入如下内容:

1
0 *
/1 
* * * sh  ~
/script/dbMan
.sh

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

本文转自 tanzhenchao 51CTO博客,原文链接:http://blog.51cto.com/cmdschool/1713247,如需转载请自行联系原作者
你可能感兴趣的文章
sqlserver 2005 64bit express
查看>>
(转)Oracle中For和while及一些应用
查看>>
jQuery基础及选择器
查看>>
DragonFly BSD 3.2 发布
查看>>
Mozilla 发布 Popcorn Maker,在线创作视频
查看>>
C#中为什么需要装箱拆箱操作?
查看>>
PHP类中一般方法与静态方法的疑问
查看>>
[转]PHP花括号变量
查看>>
【Opencv学习】摄像头采集、录像、截图小工具
查看>>
Fedora16安装中文语言包和中文输入法
查看>>
Windows 8实用窍门系列:14.windows 8中粘贴板(剪切板)的使用
查看>>
长连接API小心“窜包”问题
查看>>
开发者基础知识游戏,共10关,欢迎挑战
查看>>
ASP.NET中 RadioButtonList(单选按钮组)的使用
查看>>
SESSION 丢失
查看>>
DES可逆加解密
查看>>
图解Undo原理
查看>>
Kinect for Windows SDK V1.7 发布
查看>>
JAVA中的参数按值传递与按引用传递
查看>>
与Recommender System相关的会议及期刊
查看>>