球球看世界

mysql 增量备份脚本

andy.zhang 2016年07月28日 编程脚本 848 评论关闭

脚本运行需要一个参数,数据库名称。到别的服务器上运行,请把路径,用户和密码改一下。

备份用到的软件,请自行自己安装一下,很简单的,加装好repo源,用yum 一下即可,注意

mysql 5.7 需要用最新版的软件才可以备份。


#!/bin/bash

bak=$1

if [ $1 = "" ];

then

  echo "useg : sh $0 database_name"

  exit

fi

bak_dir=`date +%Y%m%d-%H`

#echo "test bak"

#echo $bak

#sleep 2

work_dir=/data/bak/$1

bak_dir1=`date -d " -1 hour" +"%Y%m%d-%H"`

fb_date=`date -d "last sunday" +"%Y%m%d"`

#echo $fb_date

cd $work_dir

if [ ! -d $work_dir ] ; then mkdir -p $work_dir ; fi

if [[ `date +%w` = 0 && `date +%H` = 0 ]];

    then

        innobackupex --user=root --password=zxq1380@#* --no-timestamp --include="$bak.*" $work_dir/$bak_dir

        if [ `echo $?` -eq 0 ]; then

              echo "Full backup successful" >>/var/log/mysqlbak.log

        else

              echo "Full backup error"    >>/var/log/mysqlbak.log

        fi

     else

        if [ ! -d $work_dir/$bak_dir1 ] ; then

                innobackupex --user=root --password=zxq1380@#* --no-timestamp --include="$bak.*" ./$bak_dir

        else

                innobackupex --user=root --password=zxq1380@#* --no-timestamp --include="$bak.*" --incremental-basedir=$work_dir/$bak_dir1 --incremental ./$bak_dir

        fi

        if [ `echo $?` -eq 0 ]; then

              echo "Incremental backup successful" >>/var/log/mysqlbak.log

        else

  i            echo "Incremental backup error" >>/var/log/mysqlbak.log

        fi

fi

if [ -d $bak_dir1 ];

then

  cd $work_dir

  tar -zcf $bak_dir1.tar.gz ./$bak_dir1

  #echo $bak_dir1

  #echo $work_dir

  #sleep 20

  rm -rf $bak_dir1

  cd -

fi



百度网盘下载地址:链接:http://pan.baidu.com/s/1jIHG6V0 密码:34y3


发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

球球看世界

我的微信号:zxq138888888 (左侧二维码扫一扫)欢迎添加!

远程无人值班修改服务器的root密码