#!/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)》协议授权
          
        
      
     
       
         
      
评论区