首页 > 数据库 > MySQL > 正文

一个简单的MySQL备份Shell脚本

2024-07-24 12:45:47
字体:
来源:转载
供稿:网友
#!/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备份其二进制日志文件。

您可能感兴趣的文章:

Shell下实现免密码快速登陆MySQL数据库的方法MySQL数据库的shell脚本自动备份Centos7安装 mysql5.6.29 shell脚本MySQL5.7安装过程并重置root密码的方法(shell 脚本)实战模拟监控MySQL服务shell脚本小结MySQL的一些功能实用的Linux shell脚本分享CentOS下编写shell脚本来监控MySQL主从复制的教程shell脚本自动修复mysql损坏的表linux下mysql如何自动备份shell脚本Shell脚本检查IP格式及mysql操作实例用shell写一个mysql数据备份脚本
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表