#!/bin/bash
# Name: xtra_back_mysql.sh
# Desc:该脚本使用xtrabackup工具对mysql数据库进行增量备份,根据自己需求可以自行修改
# Usage:./xtra_back_mysql.sh
# Author: Ghost
# Update: 2018-08-05

# 备份策略:周3、周5、周日全备,周1,周2,周4,周6增备

#变量定义
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
conf_file= $basedir/my.cnf
xtra_full_dir = /mydb3307/back_full
xtra_increment_dir = /mydb3307/back_increment
xtr_full_log = /mydb3307/log/full_`$date '+%F %T'`.log
xtr_increment_log = /mydb3307/log/increment_`$date '+%F %T'`.log

#全量备份
full_back()
{
#备份
/usr/bin/innobackupex --user=admin --password=123 $xtra_full_dir &> $xtr_full_log
full_name=$(ls -d $xtra_full_dir/$(date +%F)_*)
echo $full_name > $xtra_full_dir/full.txt

#应用日志
echo "++++++++++++++++++++++++我是分割符++++++++++++++++++++++++++" >> $xtr_full_log
/usr/bin/innobackupex --apply-log --redo-only $full_name &>> $xtr_full_log

}

#增量备份1
increment1_back()
{
#备份
full_name=`cat $xtra_full_dir/full.txt`
/usr/bin/innobackupex --user=admin --password=123 --incremental $xtra_increment_dir --incremental-basedir=$full_name &> $xtr_increment_log

increment1_dir=$(ls -d $xtra_increment_dir/$(date +%F)_*)
echo $increment1_dir > $xtra_increment_dir/increment1.txt

#应用日志
echo "++++++++++++++++++++++++我是分割符++++++++++++++++++++++++++" >> $xtr_increment_log

/usr/bin/innobackupex --apply-log --redo-only $full_name --incremental_dir=$increment1_dir &>> $xtr_increment_log

}

#增量备份2
increment2_back()
{
#备份
full_name=`cat $xtra_full_dir/full.txt`
increment1_dir=`cat $xtra_increment_dir/increment1.txt`

/usr/bin/innobackupex --user=admin --password=123 --incremental $xtra_increment_dir --incremental-basedir=$increment1_dir &> $xtr_increment_log

increment2_dir=$(ls -d $xtra_increment_dir/$(date +%F)_*)
echo $increment2_dir > $xtra_increment_dir/increment2.txt

#应用日志
echo "+++++++++++++++++++++我是分割符++++++++++++++++" >> $xtr_increment_log

/usr/bin/innobackupex --apply-log $full_name --incremental_dir=$increment2_dir &>> $xtr_increment_log

}

system_time=`date +%A`
if [ '$system_time' = 'Sunday' -o '$system_time' = 'Wednesday' -o '$system_time' = 'Friday' ];then
full_back && find $xtra_full_dir -daystart -type d -mtime +1 -exec rm -rf {} \; 2>/dev/null
sleep 86400
elif [ '$system_time' = 'Thursday' -o '$system_time' = 'Saturday' -o '$system_time' = 'Monday'];then
increment1_back && find $xtra_increment_dir -type d -mtime +1 -exec rm -rf {} \; 2>/dev/null
sleep 86400
else
increment2_back
sleep 86400
fi

shell_xtrabackup_backup_mysql的更多相关文章

随机推荐

  1. POJ1200 A - Crazy Search(哈希)

    A - Crazy Search Many people like to solve hard puzzles some of which may lead them to madness. One ...

  2. cf1200 E Compress Words(哈希)

    题意 有n个字符串,记为s1,s2……sn,s2与s1合并,合并的方式为:s1的后缀若与s2的前缀相同,就可以重叠起来,要最长的. 举个例子: “1333”  “33345” → “133345” s ...

  3. Java基础查漏补缺(1)

    Java基础查漏补缺 String str2 = "hello"; String str3 = "hello"; System.out.println(str3 ...

  4. C++的一些知识点汇总

    数组形参 数组形参 void test(const int arr[]); //arr中的值不能被改变 void test(const int *arr); //arr中的值不能被改变,包括arr[1 ...

  5. Python说文解字_Python之多任务_02

    第三部分:Semaphore控制进入数量的锁 有时候可能需要运行多个工作线程同时访问一个资源,但要限制总数.例如,连接池支持同时连接,但是数目可能是固定的,或者一个网络应用可能支持固定数据的并发下载. ...

  6. template.js的介绍

    artTemplate 介绍 artTemplate 是新一代 javascript 模板引擎,它采用预编译方式让性能有了质的飞跃,并且充分利用 javascript 引擎特性,使得其性能无论在前端还 ...

  7. 第一次 C语言课程设计

    小学生测验 最近比较忙,就拿前几天做的课设项目水一水. 内容 面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答. 功能要求: (1)电脑随机出10道题,每题10分,程序结束时显示学 ...

  8. JavaScript—原生轮播和无缝滚动

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 学生信息管理系统java测试报告

    package studentinformation; /**姓名 胡海靖 * 学号 20183609 * 班级 信1805-2 */ class ScoreInformation { private ...

  10. git 知识罗列

    git pull is basically a shortcut for two operations: git fetch which downloads the history from the ...