mysql innobackup 备份脚本

mysql 备份 

1.安装innobackup 备份工具

2.次备份脚本一周一个全备,六天是增量备份,脚本如下:

 1 #!/bin/bash 
 2 #Every 14 times the backup for a cycle
 3 
 4 format_time=`date +"%Y-%m-%d_%H:%M:%S"` 
 5 week=`date +%w` 
 6 backupbin=/usr/bin/
 7 backdir=/export/mysql_backup
 8 tardir=/export/mysql_backup/beifen
 9 tarback=`date +"%Y-%m-%d"`
10 file_cnf=/etc/my.cnf
11 user_name=root
12 password=123
13 db="bridge bridgemini xr_wp bridgecharge"
14 out_log=$backdir/xtrabackup_log
15 time_cost=$backdir/timecost.txt
16 tar_cost=$backdir/tarcost.txt
17 bakdate=`date +"%m-%d"`
18 num_file=`ls -1 $tardir|wc -l`
19 ###########################################
20 #yesterday=`date -d "yesterday" +"%m-%d"` #
21 #ENDTIME=`date +"%Y-%m-%d %H:%M:%S"`      #
22 #begin_date=`date -d  "$BEGINTIME" +%s`   #
23 #end_date=`date -d  "$ENDTIME" +%s`       #
24 #spendtime=`expr $end_date - $begin_date` #
25 ###########################################
26 
27 if [ ! -d "$backdir" ];then
28         mkdir -p $backdir
29 fi
30 
31 
32 if [ ! -d "$tardir" ];then
33         mkdir -p $tardir
34 fi
35 
36 if [ -f "$tardir/rec7.tar.gz" ];then 
37         mkdir -p $tardir/$tarback
38         mv $tardir/*.tar.gz $tardir/$tarback
39 fi
40 
41 
42 if [ -d "$backdir/rec7" ];then
43         tar -zcvf    $tardir/backup_$bakdate.tar.gz $backdir/* --exclude beifen
44         rm -rf $backdir/full $backdir/rec* $backdir/*.txt
45 fi
46 if [ $num_file -ge 3 ]; then
47  rm -r `ls -rt $tardir/*|head -n1`
48 fi
49 
50 
51 #Full backup 
52 
53 if [ ! -d "$backdir/full" ];then
54         BEGINTIME=`date +"%Y-%m-%d %H:%M:%S"`
55         echo "##### Full backup at $BEGINTIME start" >> $time_cost
56         innobackupex --defaults-file=$file_cnf --no-timestamp --user=$user_name --password=$password --socket=/tmp/mysql.sock  $backdir/full 1> $out_log.full_$format_time.txt  2>&1
57         ENDTIME=`date +"%Y-%m-%d %H:%M:%S"`
58         echo " It takes full backup at $ENDTIME END" >> $time_cost
59         begin_date=`date -d  "$BEGINTIME" +%s`
60         end_date=`date -d  "$ENDTIME" +%s`
61         spendtime=`expr $end_date - $begin_date`
62         echo " Run time full backup $spendtime sec " >> $time_cost
63         `cat $time_cost |mail -s 'mysql backup time' wangshj@quanjing.com`
64         exit 0
65 fi
66 
67 i=1
68 while [ ${i} -lt 14 ];do
69 # The No.$i incremental backup!!
70 if [ ! -d "$backdir/rec$i" ];then 
71         BEGINTIME=`date +"%Y-%m-%d %H:%M:%S"`
72         echo "##### The No.$i incremental backup at $BEGINTIME Start!" >> $time_cost
73         innobackupex --defaults-file=$file_cnf  --no-timestamp --user=$user_name --password=$password --socket=/tmp/mysql.sock  --incremental  $backdir\/rec$i  --incremental-basedir=$backdir/full 1> $out_log.rec$i.$format_time.txt 2>&1
74         ENDTIME=`date +"%Y-%m-%d %H:%M:%S"`
75         echo "It takes rec$i backup at $ENDTIME END!" >> $time_cost
76         begin_date=`date -d  "$BEGINTIME" +%s`
77         end_date=`date -d  "$ENDTIME" +%s`
78         spendtime=`expr $end_date - $begin_date`
79         echo "Run time  No.$i $spendtime sec! " >> $time_cost
80         `cat $time_cost |mail -s 'mysql backup time' wangshj@quanjing.com`
81    exit 0
82 fi
83 i=`expr $i + 1`
84 done
原文地址:https://www.cnblogs.com/wangshaojie/p/7132738.html