xtrabackup 定时增量备份脚本
#!/bin/bash
User=""
Passwd=""
Port=3306
BackupDir=/data/backup
Mycnf=/etc/my.cnf
Weekly=1
Xtrabackup=/usr/bin/innobackupex
Today=`date +%Y-%m-%d`
Yesterday=`date -d"yesterday" +%Y-%m-%d`
Full_Backup_File="$BackupDir"/"$Today"
Inc_Backup_File="$BackupDir"/"$Today"
Base_Backup_File="$BackupDir"/"$Yesterday"
LogFile="$BackupDir"/"$Today".log
echo "---------------------------------------------------------" >> $LogFile
echo " $(date +"%y-%m-%d %H:%M:%S") Start " >> $LogFile
echo "---------------------------------------------------------" >> $LogFile
if [ ! -d "$BackupDir"/"$Yesterday" ]; then
$Xtrabackup --defaults-file=$Mycnf -u$User -p$Passwd -P$Port --slave-info --no-timestamp $Full_Backup_File >> /dev/null 2>&1
cd $BackupDir;
tar -zcf "$Today"_full.tar.gz $Today >> /dev/null 2>&1
else
if [ -f "$BackupDir"/"$Today"_full.tar.gz ] || [ -f "$BackupDir"/"$Today"_inc.tar.gz ];then
echo "["$Today"_full.tar.gz] || ["$Today"_inc.tar.gz] The Backup File is exists,Can't Backup!" >> $LogFile
else
if [ $(date +%u) == $Weekly ];then
$Xtrabackup --defaults-file=$Mycnf -u$User -p$Passwd -P$Port --slave-info --no-timestamp $Full_Backup_File >> /dev/null 2>&1
cd $BackupDir;
if [ -d "$Yesterday" ];then
rm -rf $(date +%Y-%m-%d --date='1 days ago')
echo "[rm -rf "$Yesterday"] Delete Success!" >> $LogFile
else
echo "[rm -rf "$Yesterday")] is not exist" >> $LogFile
fi
tar -zcf "$Today"_full.tar.gz $Today >> /dev/null 2>&1
else
$Xtrabackup --defaults-file=$Mycnf -u$User -p$Passwd -P$Port --slave-info --no-timestamp --incremental \
--incremental-basedir=$Base_Backup_File $Inc_Backup_File >> /dev/null 2>&1
cd $BackupDir;
if [ -d $(date +%Y-%m-%d --date='1 days ago') ];then
rm -rf $(date +%Y-%m-%d --date='1 days ago')
echo "[rm -rf "$Yesterday"] Delete Success!" >> $LogFile
else
echo "[rm -rf "$Yesterday"] is not exist" >> $LogFile
fi
tar -zcf "$Today"_inc.tar.gz $Today >> /dev/null 2>&1
fi
fi
fi
echo "---------------------------------------------------------" >> $LogFile
echo " $(date +"%y-%m-%d %H:%M:%S") End " >> $LogFile
echo "---------------------------------------------------------" >> $LogFile
find $BackupDir -mtime +15 -name "*.*" -exec rm -rf {} \;
mysqldump 定时全备份脚本
#!/bin/bash
User=""
Passwd=""
Host=""
Port=3306
BackupDir=/data/backup
Today=`date +%Y-%m-%d`
MysqlDump=/usr/local/mysql/bin/mysqldump
LogFile="$BackupDir"/"$Host"_"$Today".log
echo "---------------------------------------------------------" >> $LogFile
echo " $(date +"%Y-%m-%d %H:%M:%S") Start " >> $LogFile
echo "---------------------------------------------------------" >> $LogFile
if [ -f "$BackupDir"/"$Host"_"$Today".tar.gz]; then
rm -rf "$BackupDir"/"$Host"_"$Today".tar.gz
fi
Databases=`mysql -e "show databases;" -u$User -p$Passwd -h$Host -P$Port | grep -Ev "Database|information_schema|performance_schema|test|sys"`
$MysqlDump -h"$Host" -u$User -p$Passwd -P$Port --single-transaction --master-data=2 --flush-logs --triggers -E -R -B "$Databases" |gzip> "$BackupDir"/"$Host"_"$Today".tar.gz
echo "---------------------------------------------------------" >> $LogFile
echo " $(date +"%Y-%m-%d %H:%M:%S") End " >> $LogFile
echo "---------------------------------------------------------" >> $LogFile
find $BackupDir -mtime +7 -name ""$Host"*" -exec rm -rf {} \;