全量备份
#!/bin/bash
# 设置变量
mysql_backup_dir=/data/backup/mysql/
mysql_username="yours"
mysql_password="YOURS"
# 进入备份目录
cd $mysql_backup_dir
# 生成当前时间戳
timeStart=$(date '+%Y%m%d%H%M%S')
logfile=full-$timeStart.log
# 执行全量备份
/usr/bin/innobackupex --user=$mysql_username --password=$mysql_password --no-lock --defaults-file=/etc/my.cnf $mysql_backup_dir 2> "$logfile"
# 获取最新的备份目录
latestfolder=$(ls -l | grep ^d | tail -n 1 | awk '{print $9}')
# 压缩备份文件
tar -czvf /data/backup/mysql/full_$latestfolder.tar.gz -C /data/backup/mysql ./$latestfolder
# 同步备份文件到远程服务器
rsync -vzrtopg --progress --delete --password-file=/etc/rsyncd.secrets /data/backup/mysql/full_$latestfolder.tar.gz test@ip::test
增量备份脚本
#!/bin/bash
# 设置变量
mysql_backup_dir=/data/backup/mysql/
mysql_username="yours"
mysql_password="YOURS"
# 进入备份目录
cd $mysql_backup_dir
# 获取上一个增量备份的目录
lastincrementfolder=$(ls -l | grep ^d | tail -n 1 | awk '{print $9}')
# 生成当前时间戳
timeStart=$(date '+%Y%m%d%H%M%S')
logfile=increment-$timeStart.log
# 执行增量备份
/usr/bin/innobackupex --user=$mysql_username --password=$mysql_password --no-lock --defaults-file=/etc/my.cnf --incremental $mysql_backup_dir --incremental-basedir=$lastincrementfolder 2> "$logfile"
# 获取最新的备份目录
latestfolder=$(ls -l | grep ^d | tail -n 1 | awk '{print $9}')
# 压缩备份文件
tar -czvf /data/backup/mysql/increment_$latestfolder.tar.gz -C /data/backup/mysql ./$latestfolder
# 删除原始备份目录
rm -rf $latestfolder
# 同步备份文件到远程服务器
rsync -vzrtopg --progress --delete --password-file=/etc/rsyncd.secrets /data/backup/mysql/increment_$latestfolder.tar.gz test@ip::test
远程服务器按月归档
#!/bin/bash
# 定义源目录和归档目录
SOURCE_DIR="/path/to/source/directory"
ARCHIVE_DIR="/path/to/archive/directory"
# 获取当前年份和月份
YEAR=$(date +%Y)
MONTH=$(date +%m)
# 创建归档目录(如果不存在)
mkdir -p "$ARCHIVE_DIR/$YEAR/$MONTH"
# 按月归档文件
find "$SOURCE_DIR" -type f -mtime -30 -exec mv {} "$ARCHIVE_DIR/$YEAR/$MONTH" \;
# 输出归档信息
echo "Files archived for $YEAR-$MONTH"
标签:--,备份,latestfolder,mysql,innobackupex,password,backup,全备
From: https://blog.51cto.com/u_14529165/12098411