xtrabackup备份 脚本

1、全量备份在周末晚上22点执行备份,增量是周一到周六晚上22点执行

 2、考虑到增量备份第一次是根据全量备份开始备份,后面都是根据上一次增量备份在增量脚本做了if判断,周日做一次目录清理

3、每周日晚上91点50清理目录 22点就在次备份,增量备份在周一会根据最新的周日备份进行增量备份,

4、打包备份目录可以按月来清理

full_mysqlback全量备份数据包 full_inc_mysqlback是第一次根据全量数据做的增倍数据包

inc_mysqlback 是每吃一次增倍的数据包

全量备份脚本

[root@ces-235 ~]# cat full.sh
#!/bin/bash
#远程备份IP地址
back_ip="192.168.40.112"

#主机ip
#数据库信息
mysql_data_dir="/usr/local/mysql/data"
mysql_user="back"
mysql_password="123456"
mysql_host="36.152.147.235"
mysql_port=4515

#定义备份目录
backup_dir="/backup/back_full"

echo "执行全量备份..."
# 获取当前时间戳
timestamp=$(date +'%Y%m%d%H%M%S')
back_dir="${backup_dir}/${timestamp}"
# 创建备份目录
mkdir -p "$back_dir"


#获取最新的全量备份目录
new_backup_dir=$(ls -1t "$backup_dir" | head -1)

#全量备份目录
full_dir="${backup_dir}/${new_backup_dir}"

#本地打包备份目录
tar_backup="/opt/full_mysqlbackup"
mkdir -p $tar_backup
# 执行全量备份
xtrabackup --backup --target-dir="${back_dir}" --user="$mysql_user" --password="$mysql_password" --host="$mysql_host" --port="$mysql_port"

echo "压缩最新的全量备份..."
cd $full_dir
tar -cvf "${tar_backup}/${timestamp}.tar.gz"  $full_dir
#scp ${tar_backup}/${timestamp}.tar.gz  $back_ip:$tar_backup

增量备份脚本

[root@cloudserver ~]# cat inc.sh
#!/bin/bash
# 远程备份IP地址
back_ip="192.168.40.112"

# 数据库信息
mysql_user="back"
mysql_password="123456"
mysql_host="36.152.147.235"
mysql_port=4515

# 定义增量备份目录
backup_dir="/backup/back_inc"

# 获取上一次的增量备份目录
last_backup_dir=$(ls -1t "$backup_dir" | head -1)

# 如果没有上一次的增量备份目录,那么使用最新的全量备份目录
if [ -z "$last_backup_dir" ]; then
  full_back_dir="/backup/back_full/"
  last_backup_dir=$(ls -1t "$full_back_dir" | head -1)
  backup_type="full_inc"
else
  backup_type="inc"
fi

# 获取当前时间戳
timestamp=$(date +'%Y%m%d%H%M%S')
back_dir="${backup_dir}/${timestamp}"

# 创建增量备份目录
mkdir -p "$back_dir"

# 本地打包备份目录
tar_backup="/opt/${backup_type}_mysqlbackup"
mkdir -p "$tar_backup"

# 根据备份类型设置备份目录
if [ "$backup_type" = "full_inc" ]; then
  backup_basedir="$full_back_dir"
else
  backup_basedir="$backup_dir"
fi

# 执行增量备份
xtrabackup --backup --target-dir="${back_dir}" --user="$mysql_user" --password="$mysql_password" --host="$mysql_host" --port="$mysql_port" --incremental-basedir="${backup_basedir}/${last_backup_dir}"

echo "压缩最新的${backup_type}备份..."
cd $back_dir
tar -cvf "${tar_backup}/${timestamp}.tar.gz"  $back_dir
scp ${tar_backup}/${timestamp}.tar.gz  $back_ip:$tar_backup

定时任务 

[root@cloudserver ~]# crontab -l
0 22 * * 0 sh /root/full.sh
0 22 * * 1-6 sh /root/inc.sh
50 21 * * 0 rm -rf /back/back_full/*
50 21 * * 0 rm -rf /back/back_inc/*

 

 

你可能感兴趣的:(adb,android)