设为首页收藏本站我的广告

运维网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
总共321条微博

每日一博

查看: 463|回复: 1

[分享] 【站长推荐】一个简单的MySQL备份脚本【顶】

[复制链接]
  • TA的每日心情
    开心
    2014-11-21 11:00
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    cnyunwei 发表于 2015-10-10 08:30:00 | 显示全部楼层 |阅读模式
    【重大新闻】
    [Bash shell] 纯文本查看 复制代码
    #!/bin/bash
    #this is a script of mysql backup 
    if [ ! -d /mydata/data1/backup ] ;then 
             mkdir /mydata/data1/backup
    fi
    cd /mydata/data1/backup
    file=$(find . -type f -mtime -7 | grep .*all.sql)    #查找7天内是否有备份的文件
    echo  $file
    if [  -z $file ] ;then 
            echo  "backup all databases..."
            backupfile=$(date +%F-%H-%M-%S)
            mysqldump -uroot  --lock-all-tables --flush-logs --master-data=2 --all-databases > /mydata/data1/backup/"$backupfile-all.sql"
            if [ $? -eq 0 ] ;then
                    echo "Accomplish,file is $backupfile-all.sql !"
            else 
                    echo " Failure !!! "
            fi
    else                                      #查找倒数第二大的二进制文件,作增量备份
            cd ..
            echo "All database backups ,now start doing incremental backups!"
            a=1 
            b=1 
            for file in $(ls |grep mysql-bin |grep -v index);do
                    num=$(echo $file |cut -d. -f2 )
                    if [ $num -gt $a ];then
                            a=$num
                    fi  
            done
            unset num  file
            num=1   
            for file in $(ls |grep mysql-bin |grep -v index);do
                    num=$(echo $file |cut -d. -f2 )
                    if [ $num -gt $b -a  $num  -ne $a ] ; then
                            b=$num
                            tmp=$file
                    fi  
            done
            file1=$(echo $tmp|cut -d. -f1)
            file2=$(echo $tmp|cut -d. -f2)
            mysqlbinlog $tmp > /mydata/data1/backup/"$file1-$file2.sql"
            if [ $? -eq 0 ] ;then 
                    echo  "Backup completed,file is "$file1-$file2.sql""
            fi
    fi

    说明:
    此脚本每七天做一次完全备份,以后每天做一次增量备份,完全备份使用mysqldump客户端工具,增量备份使用mysqlbinlog备份其二进制日志文件。




    来自群组: 北京运维圈
    运维网 感谢您的阅读
    回复过本主题
    的还回复过:

    该用户从未签到

    wobunvj 发表于 2015-11-4 15:55:19 | 显示全部楼层
    厉害!强~~~~没的说了!












    19V1A电源美国UL认证
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    QQ|申请友链|sitemap|手机版|小黑屋|Archiver|运维网 ( 京ICP备16008201号  

    GMT+8, 2016-12-9 21:40 , Processed in 0.060071 second(s), 39 queries , Xcache On.

    Powered by Discuz! X3.2 Licensed

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表