xtrabackup-全量备份-脚本参考

#!/bin/bash
#NAME:JDS
#EMAIL:cu97ming@hotmail.com
#环境变量
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
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注