一个简单的MySQL备份Shell脚本

作者:junjie 时间:2024-01-22 16:44:24 


#!/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,备份,Shell,脚本
0
投稿

猜你喜欢

  • SQL2005 服务器因重装改名后出错的说明

    2024-01-23 09:31:22
  • Python真题案例之蛇形数组详解

    2021-12-09 11:00:40
  • SqlServer 扩展属性的介绍

    2024-01-17 09:32:15
  • Ubuntu20.04环境安装tensorflow2的方法步骤

    2023-07-04 06:41:21
  • python利用tkinter实现屏保

    2022-01-26 05:39:51
  • asp如何实现网络打印?

    2010-05-24 18:31:00
  • python在协程中增加任务实例操作

    2023-02-17 22:57:48
  • django框架自定义模板标签(template tag)操作示例

    2023-11-06 16:05:59
  • vue单页面在微信下只能分享落地页的解决方案

    2024-05-09 10:52:19
  • es6函数之严格模式用法实例分析

    2023-08-09 06:15:40
  • Oracle 数据库自动存储管理-安装配置

    2009-05-24 19:15:00
  • 设为首页与加入收藏的JS代码(多浏览器支持)

    2024-04-10 13:57:11
  • 在Oracle PL/SQL中游标声明中表名动态变化的方法

    2009-02-28 10:39:00
  • 阿里云ECS centos6.8下安装配置MySql5.7的教程

    2024-01-14 23:47:13
  • Python单元测试模块doctest的具体使用

    2021-02-26 16:50:12
  • 用户体验如何提升阿里巴巴的商业价值

    2009-07-23 20:29:00
  • MySQL存储引擎MyISAM与InnoDB区别总结整理

    2024-01-15 13:18:22
  • 详解Python with/as使用说明

    2022-10-29 08:01:26
  • vue之组件内监控$store中定义变量的变化详解

    2023-07-02 17:01:31
  • Python HTML解析模块HTMLParser用法分析【爬虫工具】

    2023-10-04 02:07:09
  • asp之家 网络编程 m.aspxhome.com