为了账号安全,请及时绑定邮箱和手机立即绑定

一个简单的MySQL备份Shell脚本

标签:
MySQL

           ?


#!/bin/bash#this is a script of mysql backup if [ ! -d /mydata/data1/backup ] ;then mkdir /mydata/data1/backupficd /mydata/data1/backupfile=$(find . -type f -mtime -7 | grep .*all.sql)  #查找7天内是否有备份的文件echo $fileif [ -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 !!! " fielse                   #查找倒数第二大的二进制文件,作增量备份 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"" fifi


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

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消