码迷,mamicode.com
首页 > 其他好文 > 详细

xtrabackup一键自动化备份脚本 V2 版【原创】

时间:2015-09-25 16:33:35      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:xtrabackup一键自动化备份脚本 v2 版【原创】

备份文件路径        backdir=/ASSET.innobackupex
mysql用来备份用户   user=用户名
mysql用户的密码     pass=密码
输出的信息保存路径   logfile=/var/www/html/index.html

[root@nb0001 ~]# cat innobackupex.v2.sh
#!/bin/bash
backdir=/ASSET.innobackupex
user=用户名
pass=密码
logfile=/var/www/html/files/index.html
week=`date +%u`
mkdir $backdir >> /dev/null 2>&1
if [ ! -f  /globalback ]
then
    cat /dev/null > $logfile
    innobackupex --user=$user -password=$pass $backdir
    stat=`echo $?`
    ls $backdir | tail -n 1 > /globalback
    basedir=`cat /globalback`
    last=`ls $backdir  | tail -n 1`
    echo "<br><br>"
    date >> $logfile
    if [ $stat -ne 0 ] 
    then
         echo "备份失败!" >> $logfile
     exit
    fi
    echo "<br> 检测到之前没有做过全局备份,完全备份一次!<br>" >> $logfile
    echo -n "本次全局备份使用的二进制日志文件,截止位置信息:"  >> $logfile
    cat $backdir/$basedir/xtrabackup_binlog_info  >> $logfile
    echo -n "<br> 二进制日志文件路径"  >> $logfile
    grep "^log-bin" /etc/my.cnf  >> $logfile
    echo "<br>本次数据库备份文件份的lsn信息如下:<br>开始位置:" >> $logfile
    grep from_lsn $backdir/$last/xtrabackup_checkpoints  >> $logfile
    echo "<br>结束位置: "  >> $logfile
    grep to_lsn  $backdir/$last/xtrabackup_checkpoints >> $logfile
    echo "<br> 备份文件的大小、路径" >> $logfile
    du -sh  $backdir/$last/  >> $logfile
    echo "<br>" >> $logfile
    
exit
fi
if [ $week -eq 5 ]
then
    innobackupex --user=$user -password=$pass $backdir
    stat=`echo $?`
    incre=`ls $backdir | tail -n 1`
    if [ $stat -ne 0 ] 
    then
    echo "<br><br>" >> $logfile
    date >> $logfile
         echo "<br>备份失败!" >> $logfile
     exit
    fi
    ls $backdir | tail -n 1 > /globalback
    basedir=`cat /globalback`
    echo "<br><br>↓↓↓↓↓↓↓↓↓↓↓   全局备份分割线  ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓<br><br>" >> $logfile
    date >> $logfile
    echo "<br>全局备份<br>"  >> $logfile
    echo "数据备份的位置  $backdir/$basedir <br>"  >> $logfile
    echo -n "本次全局备份使用的二进制日志文件,截止位置信息:"  >> $logfile
    cat $backdir/$basedir/xtrabackup_binlog_info  >> $logfile
    echo -n "<br> 二进制日志文件路径"  >> $logfile
    grep "^log-bin" /etc/my.cnf  >> $logfile
    echo "<br>本次数据库备份文件份的lsn信息如下:<br>开始位置:" >> $logfile
    grep from_lsn $backdir/$basedir/xtrabackup_checkpoints  >> $logfile
    echo "<br>结束位置: "  >> $logfile
    grep to_lsn  $backdir/$basedir/xtrabackup_checkpoints >> $logfile
    echo "<br> 备份文件的大小、路径" >> $logfile
    du -sh  $backdir/$basedir >> $logfile
    echo "<br>" >> $logfile
else
   basedir=`cat /globalback`
   last=`ls $backdir  | tail -n 1`
   innobackupex --user=$user -password=$pass --incremental $backdir --incremental-basedir=$backdir/$last
    stat=`echo $?`
    incre=`ls $backdir | tail -n 1`
    echo "<br><br>" >> $logfile
    date >> $logfile
    if [ $stat -ne 0 ] 
    then
         echo "备份失败!" >> $logfile
     exit
    fi
    echo "<br>增量备份 <br>"  >> $logfile
    echo "基  本库是 $backdir$basedir <br>"  >> $logfile
    echo "上次备份是 $backdir$last <br>"  >> $logfile
    echo "本次备份是 $backdir$incre <br>"  >> $logfile
    echo -n "上次全局备份使用的二进制日志文件,截止位置信息:"  >> $logfile
    cat $backdir/$basedir/xtrabackup_binlog_info  >> $logfile
    echo -n "<br> 本次增量备份使用的二进制日志文件,截止位置信息:"  >> $logfile
    cat $backdir/$incre/xtrabackup_binlog_info  >> $logfile
    echo -n "<br>二进制日志文件路径"  >> $logfile
    grep "^log-bin" /etc/my.cnf  >> $logfile
    echo "<br>本次增量数据库备份文件份的lsn信息如下:<br>开始位置:" >> $logfile
    grep from_lsn $backdir/$incre/xtrabackup_checkpoints  >> $logfile
    echo "<br>结束位置: "  >> $logfile
    grep to_lsn  $backdir/$incre/xtrabackup_checkpoints >> $logfile
    echo "<br> 增量备份文件的大小、路径" >> $logfile
    du -sh  $backdir/$incre  >> $logfile
    echo "<br>" >> $logfile
fi


xtrabackup一键自动化备份脚本 V2 版【原创】

标签:xtrabackup一键自动化备份脚本 v2 版【原创】

原文地址:http://990487026.blog.51cto.com/10133282/1698228

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!