MySQL备份_innobackupex_shell脚本

备份实现步骤:

        到目录:cd /script
        创建脚本:vi innobackupex.sh 
        赋予脚本执行权限:chmod +x ./innobackupex.sh
        临时执行脚本:./innobackupex.sh

innobackupex.sh脚本内容:

#!/bin/bash
export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin

#定义变量

MysqlUser=dbbackup
MyseqlPwd=dbbackup
hosts=127.0.0.1
sock=/tmp/mysql.sock  #你的mysql.sock路径

year=`date +%Y`
month=`date +%m`
day=`date +%d`
hour=`date +%H`
min=`date +%M`

#定义路径

bakdir=/data/backupDB
logdir=$bakdir/log
logs=$logdir/`date +%F_%H-%M-%S`.log
baklogs=$logdir/`date +%F_%H`backup.log
dirname=$year-$month-$day
bakdir_mysql=$bakdir/all/
bakdir_mysql_packaging=$bakdir/packaging/
back_tar=${dirname}-${hour}-${min}

echo "\N----------------------------------------------------------">>$baklogs
echo "$(date "+%Y-%m-%d %H:%M:%S") : 1 mkdir ${bakdir_mysql} and ${bakdir_mysql_packaging} start" >>$baklogs
if [ ! -d "$bakdir_mysql" ]; then
        mkdir -p $bakdir_mysql
        if [ $? -eq 0 ]; then
                echo "$(date "+%Y-%m-%d %H:%M:%S") : mkdir $bakdir_mysql ok" >>$baklogs
        fi
else
        echo "$(date "+%Y-%m-%d %H:%M:%S") : do without mkdir $bakdir_mysql" >>$baklogs
fi

if [ ! -d "$bakdir_mysql_packaging" ]; then
        mkdir -p $bakdir_mysql_packaging
        if [ $? -eq 0 ]; then
                echo "$(date "+%Y-%m-%d %H:%M:%S") : mkdir $bakdir_mysql_packaging ok~" >>$baklogs
        fi
else
        echo "$(date "+%Y-%m-%d %H:%M:%S") : do without mkdir $bakdir_mysql_packaging" >>$baklogs
fi

echo "$(date "+%Y-%m-%d %H:%M:%S") : 2 delete ${bakdir_mysql} all bak file start" >>$baklogs

cd ${bakdir_mysql}
pwds=`pwd`
if [ "${bakdir_mysql}"=="${pwds}/" ]; then
        #expire="$(date -d "-1 days" +"%Y-%m-%d")*"
        rm -rf 202*
        echo "$(date "+%Y-%m-%d %H:%M:%S") : delete ${bakdir_mysql} all bak file end~" >>$baklogs
else
        echo "$(date "+%Y-%m-%d %H:%M:%S") : wrong path [${bakdir_mysql}], [${pwds}/] " >>$baklogs
fi

echo "$(date "+%Y-%m-%d %H:%M:%S") : 3 innobackupex to ${bakdir_mysql} start ~~~~~~" >>$baklogs
/usr/local/xtrabackup/bin/innobackupex --defaults-file=/etc/my.cnf --compress --compress-threads=4 --stream=xbstream --parallel=5 --host=${hosts} -S ${sock} --user=${MysqlUser} --password=${MyseqlPwd} ${bakdir_mysql}> ${bakdir_mysql}${back_tar}.xbstream 2>$logs

if [ $? -eq 0 ]; then
        echo "$(date "+%Y-%m-%d %H:%M:%S") : innobackupex back is ok">>$baklogs
else
        echo "$(date "+%Y-%m-%d %H:%M:%S") : innobackupex back is NG">>$baklogs
        exit
fi

echo "$(date "+%Y-%m-%d %H:%M:%S") : 4 move ${back_tar}.xbstream start ~~~~~~" >>$baklogs
cd ${bakdir_mysql}
pwds=`pwd`

if [ "${bakdir_mysql}" == "${pwds}/" ]; then
        mv ${back_tar}.xbstream ${bakdir_mysql_packaging}
        echo "$(date "+%Y-%m-%d %H:%M:%S") :  $bakdir_mysql Packaging success" >>$baklogs
else
        echo "$(date "+%Y-%m-%d %H:%M:%S") :  $bakdir_mysql Packaging not success" >>$baklogs
fi

echo "$(date "+%Y-%m-%d %H:%M:%S") : 5 delete tar five days ago~" >>$baklogs

cd ${bakdir_mysql_packaging}
pwds=`pwd`
if [ "${bakdir_mysql_packaging}" == "${pwds}/" ]; then
        expire="$(date -d "-5 days" +"%Y-%m-%d")*"
        rm -rf $expire
        echo "$(date "+%Y-%m-%d %H:%M:%S") : delete ${bakdir_mysql_packaging} all bak file end~" >>$baklogs
fi

cd ${logdir}/
pwds=`pwd`
echo "$(date "+%Y-%m-%d %H:%M:%S") : delete log start: ${logdir}= ${pwds}">>$baklogs
if [ "${logdir}" == "${pwds}" ]; then
        expire="$(date -d "-5 days" +"%Y-%m-%d")*"
        rm -rf $expire
        echo "$(date "+%Y-%m-%d %H:%M:%S") : delete ${logdir}/  logfile end~" >>$baklogs
fi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值