1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
[root@master leo]
# cat DBfullBak.sh
#!/bin/bash
#use mysqldump to fully backup mysql data
BakDir=
/root/leo/full
LogFile=
/root/leo/full/bak
.log
Date=`
date
+%Y%m%d`
Begin=`
date
+
"%Y年%m月%d日 %H:%M:%S"
`
cd
$BakDir
DumpFile=$Date.sql
GZDumpFile=$Date.sql.tgz
mysqldump -uroot -p123456 --all-databases --lock-all-tables --routines --triggers --events --master-data=2 --flush-logs > $DumpFile
tar
zcvf $GZDumpFile $DumpFile
rm
$DumpFile
Last=`
date
+
"%Y年%m月%d日 %H:%M:%S"
`
echo
开始:$Begin 结束:$Last $GZDumpFile succ >> $LogFile
|
1
2
3
4
5
6
7
|
--all-databases
#备份所有库
--lock-all-tables
#为所有表加读锁
--routinge
#存储过程与函数
--triggers
#触发器
--events
#记录事件
--master-data=2
#在备份文件中记录当前二进制日志的位置,并且为注释的,1是不注释掉在主从复制中才有意义
--flush-logs
#日志滚动一次
|
1
2
3
4
5
6
|
[root@master full]
# ls
20140728.sql.tgz bak.log
[root@master full]
# cat bak.log
开始:2014年07月28日 19:02:59 结束:2014年07月28日 19:02:59 20140728.sql.tgz succ
开始:2014年07月28日 19:12:01 结束:2014年07月28日 19:12:01 20140728.sql.tgz succ
[root@master full]
#
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
[root@master leo]
# cat DBDailyBak.sh
#!/bin/bash
BakDir=
/root/leo/binlog/
BinDir=
/var/lib/mysql
LogFile=
/root/leo/binlog/bak
.log
BinFile=
/var/lib/mysql/mysql-bin
.index
mysqladmin -uroot -p123456 flush-logs
Counter=`
wc
-l $BinFile|
awk
'{print $1}'
`
NextNum=0
for
file
in
`
cat
$BinFile`
do
base=`
basename
$
file
`
NextNum=`
expr
$NextNum + 1`
if
[ $NextNum -
eq
$Counter ]
then
echo
$base skip! >> $LogFile
else
dest=$BakDir/$base
if
(
test
-e $dest)
then
echo
$base exist! >> $LogFile
else
cp
$BinDir/$base $BakDir/
echo
$base copying >> $LogFile
fi
fi
done
echo
`
date
+
"%Y年%m月%d日 %H:%M:%S"
` $Next Bakup succ~ >> $LogFile
|
来源:http://lansgg.blog.51cto.com/5675165/1536870