一个简单的MySQL备份Shell脚本
2015-07-10 11:38
796 查看
#!/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备份其二进制日志文件。
您可能感兴趣的文章:
相关文章推荐
- MySQL中的integer 数据类型
- android wifi 无线调试
- 运维入门
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- 动态清空 nohup 输出文件
- install scrapy with pip and easy_install
- source命令执行SQL脚本文件
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜