mysql数据备份策略-shell脚本优化代码

一.备份的主机上需要自己手动安装xtrabackup工具

1.安装xtrabackup-yum源

#下载xtrabackup的yum源
wget http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
  rpm -ivh percona-release-0.1-4.noarch.rpm

 2.打开yum源

#打开xtrabackup的yum源 
vim percona-release.repo

 mysql数据备份策略-shell脚本优化代码_第1张图片

3.下载


#2.下载xtrabackup 工具
yum -y install percona-xtrabackup-24.x86_64

二.代码

1.vim mysql_bauk.sh

#!/usr/bin/bash
<> $backup_log
    )
    if [ ! -d $backup_dir/full ];then
        mkdir $backup_dir/full
    fi
    $cmd $backup_dir/full && \
    (
    echo "[full] $backup_dir/full/`ls $backup_dir/full`" >> $back_status_log
    echo "[`date +'%F %T'`] full备份 成功" >> $backup_log
    ) || \
    (
        send_email "[`date +'%F %T'`] 在进行full备份时,出现无法解决的异常,请及时检查 当前主机 ${ipaddr}"
        echo "[`date +'%F %T'`] full备份 失败" >> $backup_log
    )
}
backup_other(){
    if [ ! -d $backup_dir/$1 ];then
        mkdir $backup_dir/$1
    fi
    $cmd --incremental $backup_dir/$1 --incremental-basedir=$2 && \
    (
    echo "[$1] $backup_dir/$1/`ls $backup_dir/$1 | tail -1`" >> $back_status_log
    echo "[`date +'%F %T'`] $1备份 成功" >> $backup_log
    ) || \
    (
        send_email "[`date +'%F %T'`] 在进行${1}备份时遇到无法解决的异常,请及时检查 当前主机 ${ipaddr}"
        echo "[`date +'%F %T'`] $1备份 失败" >> $backup_log
    )
}

case ${rule[$(date "+%w")]} in
f)
    backup_full
    ;;
d)
    path=`fgrep "[full]" $back_status_log | awk 'END{print $2}'`
    backup_other diff "$path";;
i)
    path=`tail -1 $back_status_log | awk '{print $2}'`
    backup_other intr $path;;
esac

2.配置mailx的插件

#下载
yum -y install mailx
#添加以下内容
vim /etc/mail.rc
set bsdcompat
set from=邮箱@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=邮箱@qq.com
set smtp-auth-password=邮箱的授权码
set smtp-auth=login
set ssl-verify=ignore

你可能感兴趣的:(mysql,数据库,xtrabackup)