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

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

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

bash 复制代码
#!/usr/bin/bash                
#CSDN :M乔木 
#Email:2776617348@qq.com 
#解释器:这是一个shell脚本    

#数据库用户密码
user=数据库用户
passwd=数据库密码

#检查备份情况
bm(){
	if [ $? -ne "0" ];then
	mail
	fi
}

#检查数据库
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_log
	case ${XQ} in
7)
	innobackupex --user=${user} -password="${passwd}" /xtdata/星期天/ &>/xtdata/xt_log/elog.log
	bm
	;;
1)
	xqy=`ls /xtdata/星期天/ | sort -nr | head -1`	
	innobackupex --user=${user} --password="${passwd}" --incremental /xtdata/星期一/ --incremental-basedir=/xtdata/星期天/${xqy} &>/xtdata/xt_log/elog.log
	bm
	;;
2)
	xqy=`ls /xtdata/星期一/ | sort -nr | head -1`      
        innobackupex --user=${user} --password="${passwd}" --incremental /xtdata/星期二/ --incremental-basedir=/xtdata/星期一/${xqy}	&>/xtdata/xt_log/elog.log
	bm
	;;
3)
	xqy=`ls /xtdata/星期天/ | sort -nr | head -1`      
        innobackupex --user=${user} --password="${passwd}" --incremental /xtdata/星期三/ --incremental-basedir=/xtdata/星期天/${xqy}    &>/xtdata/xt_log/elog.log
	bm
	;;
4)
	xqy=`ls /xtdata/星期三/ | sort -nr | head -1`
        innobackupex --user=${user} --password="${passwd}" --incremental /xtdata/星期四/ --incremental-basedir=/xtdata/星期三/${xqy}	&>/xtdata/xt_log/elog.log
	bm
	;;
5)
	xqy=`ls /xtdata/星期四/ | sort -nr | head -1`
        innobackupex --user=${user} --password="${passwd}" --incremental /xtdata/星期五/ --incremental-basedir=/xtdata/星期四/${xqy}	&>/xtdata/xt_log/elog.log
	bm
	;;
6)
	xqy=`ls /xtdata/星期三/ | sort -nr | head -1`
        innobackupex --user=${user} --password="${passwd}" --incremental /xtdata/星期六/ --incremental-basedir=/xtdata/星期三/${xqy}    &>/xtdata/xt_log/elog.log
	bm
	;;
*)
	echo "执行备份任务失败 原因是日期异常" >>/xtdata/xt_log/elog.log 
	mail
	esac
相关推荐
DongQiShanRen8 小时前
玄龙(上):TICK 主循环——意识心跳怎么跳
linux·jvm·数据库·人工智能·数据挖掘·rust
小此方8 小时前
Linux网络(二十一):深入理解 TCP 异常处理:网线断开、Keepalive 保活机制与 Linux 内核传输层协议源码剖析
linux·网络·tcp/ip
天远API8 小时前
零信任架构实战:基于天远风控经营异常预警构建自动化供应商店铺巡检网关
人工智能·架构·自动化·dubbo
pride.li8 小时前
Python 安装
linux·python·ubuntu
数据库小学妹8 小时前
存算分离到底分离了什么?四条架构变化与选型判断
数据库·数据库架构·云原生数据库·缓存一致性·存算分离
FPGA小徐8 小时前
【一生一芯 / PA】异常响应机制:RISC-V 中 ecall → mtvec → mret 的完整代
开发语言·数据库·c#
笔墨登场说说8 小时前
centos 8 使用 kafka_2.13-4.3.1.tgz 安装kafka
linux·kafka·centos
luo_guibin8 小时前
Linux系统下OpenSSL升级全流程,新旧版本切换
linux·运维·服务器
7177778 小时前
支持混合云的 DevOps 平台有哪些:主流方案对比与选型指南
运维·devops
看着博客敲代码8 小时前
No space left on device:服务器被 SSH 爆破到日志写满的完整排查与止血
linux·运维·服务器·安全·ssh