?
#!/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备份其二进制日志文件。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦