每日shell脚本之自动化备份数据库周期性灾备

2024-03-10 14:12

本文主要是介绍每日shell脚本之自动化备份数据库周期性灾备,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

每日shell脚本之自动化备份数据库周期性灾备

使用本脚本前在服务器安装 物理备份工具-xtrabackup

#!/usr/bin/bash                
#CSDN :M乔木 
#Email:2776617348@qq.com 
#解释器:这是一个shell脚本    #数据库用户密码
user=数据库用户
passwd=数据库密码#检查备份情况
bm(){if [ $? -ne "0" ];thenmailfi
}#检查数据库
md=$(systemctl status mysqld  &>/dev/null)
if [ $? -ne "0" ];then
echo "备份失败! 原因没安装mysql" &>>/xtdata/xt_log/elog.log
mail
ecit 9
fi
#备份失败邮件
mail(){
sm=$(rpm -qa mailx | awk -F'-' '{print $1}')
if [ -z "${sm}" ];then
yum -y install mailx
fi
echo "备份异常! 请到xtdata目录下查看日志"   | mail -s "数据备份异常" -S smtp="smtp服务器域名" -S smtp-auth=login -S smtp-auth-user="发件人邮箱" -S smtp-auth-password="你的授权码"  收件人邮箱
}#获取当前时间
XQ=$(date +%u)#日志收集
xt_log(){
xtlog=`ls . | grep /xtdata`
if [ ! -d "${xtlog}" ];then
echo "you"
mkdir -p  /xtdata/{星期天,星期一,星期二,星期三,星期四,星期五,星期六,xt_log}
touch /xtdata/xt_log/elog.log
fi
}#主界面xt_logcase ${XQ} in
7)innobackupex --user=${user} -password="${passwd}" /xtdata/星期天/ &>/xtdata/xt_log/elog.logbm;;
1)xqy=`ls /xtdata/星期天/ | sort -nr | head -1`	innobackupex --user=${user} --password="${passwd}" --incremental /xtdata/星期一/ --incremental-basedir=/xtdata/星期天/${xqy} &>/xtdata/xt_log/elog.logbm;;
2)xqy=`ls /xtdata/星期一/ | sort -nr | head -1`      innobackupex --user=${user} --password="${passwd}" --incremental /xtdata/星期二/ --incremental-basedir=/xtdata/星期一/${xqy}	&>/xtdata/xt_log/elog.logbm;;
3)xqy=`ls /xtdata/星期天/ | sort -nr | head -1`      innobackupex --user=${user} --password="${passwd}" --incremental /xtdata/星期三/ --incremental-basedir=/xtdata/星期天/${xqy}    &>/xtdata/xt_log/elog.logbm;;
4)xqy=`ls /xtdata/星期三/ | sort -nr | head -1`innobackupex --user=${user} --password="${passwd}" --incremental /xtdata/星期四/ --incremental-basedir=/xtdata/星期三/${xqy}	&>/xtdata/xt_log/elog.logbm;;
5)xqy=`ls /xtdata/星期四/ | sort -nr | head -1`innobackupex --user=${user} --password="${passwd}" --incremental /xtdata/星期五/ --incremental-basedir=/xtdata/星期四/${xqy}	&>/xtdata/xt_log/elog.logbm;;
6)xqy=`ls /xtdata/星期三/ | sort -nr | head -1`innobackupex --user=${user} --password="${passwd}" --incremental /xtdata/星期六/ --incremental-basedir=/xtdata/星期三/${xqy}    &>/xtdata/xt_log/elog.logbm;;
*)echo "执行备份任务失败 原因是日期异常" >>/xtdata/xt_log/elog.log mailesac

这篇关于每日shell脚本之自动化备份数据库周期性灾备的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/794483

相关文章

Python+FFmpeg实现视频自动化处理的完整指南

《Python+FFmpeg实现视频自动化处理的完整指南》本文总结了一套在Python中使用subprocess.run调用FFmpeg进行视频自动化处理的解决方案,涵盖了跨平台硬件加速、中间素材处理... 目录一、 跨平台硬件加速:统一接口设计1. 核心映射逻辑2. python 实现代码二、 中间素材处

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

Java使用Spire.Doc for Java实现Word自动化插入图片

《Java使用Spire.DocforJava实现Word自动化插入图片》在日常工作中,Word文档是不可或缺的工具,而图片作为信息传达的重要载体,其在文档中的插入与布局显得尤为关键,下面我们就来... 目录1. Spire.Doc for Java库介绍与安装2. 使用特定的环绕方式插入图片3. 在指定位

MySQL MHA集群详解(数据库高可用)

《MySQLMHA集群详解(数据库高可用)》MHA(MasterHighAvailability)是开源MySQL高可用管理工具,用于自动故障检测与转移,支持异步或半同步复制的MySQL主从架构,本... 目录mysql 高可用方案:MHA 详解与实战1. MHA 简介2. MHA 的组件组成(1)MHA

MySQL 数据库进阶之SQL 数据操作与子查询操作大全

《MySQL数据库进阶之SQL数据操作与子查询操作大全》本文详细介绍了SQL中的子查询、数据添加(INSERT)、数据修改(UPDATE)和数据删除(DELETE、TRUNCATE、DROP)操作... 目录一、子查询:嵌套在查询中的查询1.1 子查询的基本语法1.2 子查询的实战示例二、数据添加:INSE

通过DBeaver连接GaussDB数据库的实战案例

《通过DBeaver连接GaussDB数据库的实战案例》DBeaver是一个通用的数据库客户端,可以通过配置不同驱动连接各种不同的数据库,:本文主要介绍通过DBeaver连接GaussDB数据库的... 目录​一、前置条件​二、连接步骤​三、常见问题与解决方案​1. 驱动未找到​2. 连接超时​3. 权限不

C#借助Spire.XLS for .NET实现Excel工作表自动化样式设置

《C#借助Spire.XLSfor.NET实现Excel工作表自动化样式设置》作为C#开发者,我们经常需要处理Excel文件,本文将深入探讨如何利用C#代码,借助强大的Spire.XLSfor.N... 目录为什么需要自动化工作表样式使用 Spire.XLS for .NET 实现工作表整体样式设置样式配置

C#自动化生成PowerPoint(PPT)演示文稿

《C#自动化生成PowerPoint(PPT)演示文稿》在当今快节奏的商业环境中,演示文稿是信息传递和沟通的关键工具,下面我们就深入探讨如何利用C#和Spire.Presentationfor.NET... 目录环境准备与Spire.Presentation安装核心操作:添加与编辑幻灯片元素添加幻灯片文本操

MySQL数据库读写分离与负载均衡的实现逻辑

《MySQL数据库读写分离与负载均衡的实现逻辑》读写分离与负载均衡是数据库优化的关键策略,读写分离的核心是将数据库的读操作与写操作分离,本文给大家介绍MySQL数据库读写分离与负载均衡的实现方式,感兴... 目录读写分离与负载均衡的核心概念与目的读写分离的必要性与实现逻辑读写分离的实现方式及优缺点读负载均衡

Go语言中如何进行数据库查询操作

《Go语言中如何进行数据库查询操作》在Go语言中,与数据库交互通常通过使用数据库驱动来实现,Go语言支持多种数据库,如MySQL、PostgreSQL、SQLite等,每种数据库都有其对应的官方或第三... 查询函数QueryRow和Query详细对比特性QueryRowQuery返回值数量1个:*sql