您的位置:首页 > 数据库 > MySQL

mysql 定时增量备份和全备脚本

2013-03-29 11:08 513 查看
View Code

#!/bin/bash
scriptsDir=/opt/shells
mysqlDir=/usr/local/mysql
dataDir=/data/mysql
user=root
userPWD=
dataBackupDir=/data/mysqldump
dailyBackupDir=$dataBackupDir/daily
eMailFile=$dataBackupDir/email.txt
eMail=service@test.com
logFile=$dataBackupDir/mysqlbackup.log
HOSTNAME=`uname -n`
echo "" > $eMailFile
echo $(date +"%y%m%d %H:%M:%S") >> $eMailFile
$mysqlDir/bin/mysqladmin -u$user -p$userPWD flush-logs
cd $dataDir
fileList=`cat mysql-bin.index`
iCounter=0
for file in $fileList
do
iCounter=`expr $iCounter + 1`
done
nextNum=0
iFile=0
for file in $fileList
do
binLogName=`basename $file`
nextNum=`expr $nextNum + 1`
# 跳过最后一个二进制日志(数据库当前使用的二进制日志文件)
if [[ $nextNum == $iCounter ]]; then
echo "Skip lastest!" > /dev/null
else
dest=$dailyBackupDir/$binLogName
# 跳过已经备份的二进制日志文件
if [[ -e $dest ]]; then
echo "Skip exist $binLogName!" > /dev/null
else
# 备份日志文件到备份目录
rsync -a $binLogName $dailyBackupDir
if [[ $? == 0 ]]; then
iFile=`expr $iFile + 1`
echo "$binLogName Backup Success!" >> $eMailFile
fi
fi
fi
done
chmod -R +r $dailyBackupDir
if [[ $iFile == 0 ]];then
echo "No Binlog Backup!" >> $eMailFile
else
echo "Backup $iFile File(s)." >> $eMailFile
echo "Backup MySQL Binlog OK!" >> $eMailFile
fi
cat $eMailFile | mail -s "MySQL Daily Backup" $eMail
echo "--------------------------------------------------------" >> $logFile
cat $eMailFile >> $logFile
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: