当前位置: 首页 > news >正文

xtrabackup备份 脚本

1、全量备份在周末晚上22点执行备份,增量是周一到周六晚上22点执行

 2、考虑到增量备份第一次是根据全量备份开始备份,后面都是根据上一次增量备份在增量脚本做了if判断,周日做一次目录清理

3、每周日晚上91点50清理目录 22点就在次备份,增量备份在周一会根据最新的周日备份进行增量备份,

4、打包备份目录可以按月来清理

full_mysqlback全量备份数据包 full_inc_mysqlback是第一次根据全量数据做的增倍数据包

inc_mysqlback 是每吃一次增倍的数据包

全量备份脚本

[root@ces-235 ~]# cat full.sh
#!/bin/bash
#远程备份IP地址
back_ip="192.168.40.112"#主机ip
#数据库信息
mysql_data_dir="/usr/local/mysql/data"
mysql_user="back"
mysql_password="123456"
mysql_host="36.152.147.235"
mysql_port=4515#定义备份目录
backup_dir="/backup/back_full"echo "执行全量备份..."
# 获取当前时间戳
timestamp=$(date +'%Y%m%d%H%M%S')
back_dir="${backup_dir}/${timestamp}"
# 创建备份目录
mkdir -p "$back_dir"#获取最新的全量备份目录
new_backup_dir=$(ls -1t "$backup_dir" | head -1)#全量备份目录
full_dir="${backup_dir}/${new_backup_dir}"#本地打包备份目录
tar_backup="/opt/full_mysqlbackup"
mkdir -p $tar_backup
# 执行全量备份
xtrabackup --backup --target-dir="${back_dir}" --user="$mysql_user" --password="$mysql_password" --host="$mysql_host" --port="$mysql_port"echo "压缩最新的全量备份..."
cd $full_dir
tar -cvf "${tar_backup}/${timestamp}.tar.gz"  $full_dir
#scp ${tar_backup}/${timestamp}.tar.gz  $back_ip:$tar_backup

增量备份脚本

[root@cloudserver ~]# cat inc.sh
#!/bin/bash
# 远程备份IP地址
back_ip="192.168.40.112"# 数据库信息
mysql_user="back"
mysql_password="123456"
mysql_host="36.152.147.235"
mysql_port=4515# 定义增量备份目录
backup_dir="/backup/back_inc"# 获取上一次的增量备份目录
last_backup_dir=$(ls -1t "$backup_dir" | head -1)# 如果没有上一次的增量备份目录,那么使用最新的全量备份目录
if [ -z "$last_backup_dir" ]; thenfull_back_dir="/backup/back_full/"last_backup_dir=$(ls -1t "$full_back_dir" | head -1)backup_type="full_inc"
elsebackup_type="inc"
fi# 获取当前时间戳
timestamp=$(date +'%Y%m%d%H%M%S')
back_dir="${backup_dir}/${timestamp}"# 创建增量备份目录
mkdir -p "$back_dir"# 本地打包备份目录
tar_backup="/opt/${backup_type}_mysqlbackup"
mkdir -p "$tar_backup"# 根据备份类型设置备份目录
if [ "$backup_type" = "full_inc" ]; thenbackup_basedir="$full_back_dir"
elsebackup_basedir="$backup_dir"
fi# 执行增量备份
xtrabackup --backup --target-dir="${back_dir}" --user="$mysql_user" --password="$mysql_password" --host="$mysql_host" --port="$mysql_port" --incremental-basedir="${backup_basedir}/${last_backup_dir}"echo "压缩最新的${backup_type}备份..."
cd $back_dir
tar -cvf "${tar_backup}/${timestamp}.tar.gz"  $back_dir
scp ${tar_backup}/${timestamp}.tar.gz  $back_ip:$tar_backup

定时任务 

[root@cloudserver ~]# crontab -l
0 22 * * 0 sh /root/full.sh
0 22 * * 1-6 sh /root/inc.sh
50 21 * * 0 rm -rf /back/back_full/*
50 21 * * 0 rm -rf /back/back_inc/*

 

 

http://www.lryc.cn/news/195745.html

相关文章:

  • 13SpringMVC中拦截器的配置(拦截规则)和多个拦截器的preHandle,postHandle执行顺序原理详解
  • Liunx中系统安全及文件系统(极其粗糙版)
  • Java中的数组
  • Java反射调用jar包实现多态
  • PowerBI 一些基础功能
  • Mac用命令行安装Adobe代码字体Source Code Pro
  • RustDay05------Exercise[31-40]
  • wireshark过滤器的简单介绍
  • 数据结构:二叉树(1)
  • [nlp] chathome—家居装修垂类大语言模型的开发和评估
  • http(下)
  • Python学习基础笔记七十二——IDE集成开发环境
  • [MQ]Win平台RocketMQ安装启动
  • vscode工程屏蔽不使用的文件夹或文件的方法
  • 黑马JVM总结(三十四)
  • [linux]vncserver常用终端命令合集
  • 亚马逊、eBay,速卖通,国际站买家账号支付异常问题解决方法
  • Constitutional AI
  • TDengine 资深研发整理:基于 SpringBoot 多语言实现 API 返回消息国际化
  • 数据结构-冒泡排序Java实现
  • 完整教程:Java+Vue+Websocket实现OSS文件上传进度条功能
  • 【微服务 SpringCloud】实用篇 · 服务拆分和远程调用
  • Linux 下I/O操作
  • C#内映射lua表
  • android studio检测不到真机
  • 【Eclipse】设置自动提示
  • 单片机TDL的功能、应用与技术特点 | 百能云芯
  • 解决笔记本无线网络5G比2.4还慢的奇怪问题
  • GitHub Action 通过SSH 自动部署到云服务器上
  • 【AOP系列】7.数据校验