#!/bin/bash
#环境变量
my_date=$(date +%-F)
my_path=/data/mysql_3306_core
my_back=/data/backup_warehouse/mysql_database
#备份命令
my_backup=$(which innobackupex)
#数据库配置参数
my_conf_file=${my_path}/conf/my.cnf
my_socket_file=${my_path}/run/mysql_3306_core.sock
#用户配置
my_user=root
my_pass=root
my_port=3306
my_host=localhost
function init_base()
{
#该函数用于检测环境信息
#判断备份的目录是否存在不存在则创建备份目录
if [ ! -d ${my_back} ];then
mkdir ${my_back} -p
fi
#判断备份命令是否存在
if [ ! -f ${my_backup} ];then
echo "Innobackupex This command does not exist"
exit 1
fi
#判断用户是否是root用户
u_id=$(id -u)
if [ ${u_id} != '0' ];then
echo "Use root user to run the script"
exit 1
fi
}
function backup_db()
{
#该函数用于用备份数据库
#该变量为备份目录的位置 备份目录命名格式:xxxx-xx-xx
bakcup_path=${my_back}/${my_date}
#该判断用于判断是否存在目录
#不存在则生成该目录存在则删除该目录并新建该目录
if [ ! -d ${bakcup_path} ];then
mkdir -p ${bakcup_path}
else
rm -rf ${bakcup_path}
mkdir -p ${bakcup_path}
fi
#用于执行备份操作
${my_backup} --defaults-file=${my_conf_file} \
--user=${my_user} --password=${my_pass} --host=${my_host} \
--port=${my_port} --socket=${my_socket_file} --parallel=8 \
--no-timestamp ${bakcup_path}
}
function clean_overdue()
{
#该函数用于清理超过30天备份信息
find ${my_back}/ -ctime +30 -type d | \
xargs rm -rf
}
init_base
backup_db
clean_overdue
版权归属:
admin
许可协议:
本文使用《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》协议授权
评论区