mysql日志备份脚本
2009-04-18 17:00
295 查看
#!/bin/sh
# Name:mysqlDailyBackup.sh
# PS:MySQL DataBase Daily Backup.
# Write by:i.Stone
# Last Modify:2007-11-17
#
#set -x
scriptsDir=`pwd`
mysqlDir=/usr/local/mysql
dataDir=$mysqlDir/var
user=root
userPWD=123456
dataBackupDir=/bakup
dailyBackupDir=$dataBackupDir/mysqldaily/
eMailFile=$dataBackupDir/email.txt
logFile=/var/log/mysqlbakup.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
cp $binLogName $dailyBackupDir #备份日志文件
if [[ $? == 0 ]]; then
iFile=`expr $iFile + 1`
echo "$binLogName Backup Success!" >> $eMailFile
fi
fi
fi
done
if [[ $iFile == 0 ]];then
echo "No Binlog Backup!" >> $eMailFile
else
echo "Backup $iFile File(s)." >> $eMailFile
echo "Backup MySQL Binlog OK!" >> $eMailFile
# Move Backup Files To Backup Server.
# $scriptsDir/rsyncBackup.sh
# if [[ $? == 0 ]]; then
# echo "Move Backup Files To Backup Server Success!" >> $eMailFile
# else
# echo "Move Backup Files To Backup Server Fail!" >> $eMailFile
# fi
fi
#cat $eMailFile | mail -s "MySQL Backup" $eMail
echo "--------------------------------------------------------" >> $logFile
cat $eMailFile >> $logFile
rm -rf $eMailFile
#同步到另外一台机子(可选)
#rsync -uqzrt --password-file=/etc/swd/dbserver1.pass /bakup/mysqldaily/* dbserver@192.168.3.2::DBadd
#if [ $? -eq 0 ];then
#echo "rsync dbserver1 daily bakup success" >> $logFile
#rm -rf /bakup/mysqldaily/*
#else
#echo "rsync dbserver1 daily bakup error" >> $logFile
#fi
# Name:mysqlDailyBackup.sh
# PS:MySQL DataBase Daily Backup.
# Write by:i.Stone
# Last Modify:2007-11-17
#
#set -x
scriptsDir=`pwd`
mysqlDir=/usr/local/mysql
dataDir=$mysqlDir/var
user=root
userPWD=123456
dataBackupDir=/bakup
dailyBackupDir=$dataBackupDir/mysqldaily/
eMailFile=$dataBackupDir/email.txt
logFile=/var/log/mysqlbakup.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
cp $binLogName $dailyBackupDir #备份日志文件
if [[ $? == 0 ]]; then
iFile=`expr $iFile + 1`
echo "$binLogName Backup Success!" >> $eMailFile
fi
fi
fi
done
if [[ $iFile == 0 ]];then
echo "No Binlog Backup!" >> $eMailFile
else
echo "Backup $iFile File(s)." >> $eMailFile
echo "Backup MySQL Binlog OK!" >> $eMailFile
# Move Backup Files To Backup Server.
# $scriptsDir/rsyncBackup.sh
# if [[ $? == 0 ]]; then
# echo "Move Backup Files To Backup Server Success!" >> $eMailFile
# else
# echo "Move Backup Files To Backup Server Fail!" >> $eMailFile
# fi
fi
#cat $eMailFile | mail -s "MySQL Backup" $eMail
echo "--------------------------------------------------------" >> $logFile
cat $eMailFile >> $logFile
rm -rf $eMailFile
#同步到另外一台机子(可选)
#rsync -uqzrt --password-file=/etc/swd/dbserver1.pass /bakup/mysqldaily/* dbserver@192.168.3.2::DBadd
#if [ $? -eq 0 ];then
#echo "rsync dbserver1 daily bakup success" >> $logFile
#rm -rf /bakup/mysqldaily/*
#else
#echo "rsync dbserver1 daily bakup error" >> $logFile
#fi
相关文章推荐
- mysql增量备份二进制日志shell脚本
- 关于两个问题:日志的自动备份脚本、mysql重置密码
- linux上mysql日志备份脚本并远程上传至windows ftp服务器
- centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobackupex/Xtrabackup 第四十节课
- mysql增量备份二进制日志shell脚本
- mysqldump实现mysql备份小脚本
- MySQL数据备份脚本
- linux利用shell脚本和cron实现定时备份、上传及垃圾日志清理(原创)
- shell脚本备份mysql并自动ftp到远程主机
- Ubuntu 上备份 MySQL 的Shell脚本
- mysql备份脚本
- mysql定时备份脚本
- mysql 单表备份脚本
- 分析Mysql慢日志脚本及快速定位慢Sql
- 【旧代码】mysql备份的shell脚本
- 一个线上备份mysql的小脚本
- mysql全量和增量备份脚本
- 自写mysql全备及增量备份脚本
- mysql备份脚本以及删除前5天的备份文件
- linux mysql备份 脚本执行成功 自动任务执行文件大小为0B