/usr/bin/mysqladmin flush-logs ####产生新的二进制日志###########
DATADIR=/var/lib/mysql
BAKDIR=/backup/mysql/daily
LogFile=/backup/mysql/daily/logbak.log
HOSTNAME=`uname -n`
cd $DATADIR
FILELIST=`cat $HOSTNAME-bin.index` ###########查看二进制日志列表##############
COUNTER=0 ##计算行数,也就是文件数
for file in $FILELIST
do
COUNTER=`expr $COUNTER + 1 `
done
NextNum=0
for file in $FILELIST
do
base=`basename $file` #########取二进制日志的文件名########
NextNum=`expr $NextNum + 1`
if [ $NextNum -eq $COUNTER ]
then
echo "skip lastest"
else
dest=$BAKDIR/$base #########给二进制日志的文件名和其完整路径赋给变量dest###########
if(test -e $dest) ###########判断二进制日志文件在备份目录中是否存在##############
then
echo "skip exist $base" ########即不备份已经备份过的日志文件###############
else
echo "copying $base"
cp $base $BAKDIR ############# 开始备份日志#############
fi
fi
done
echo " " >> $LogFile
echo "-------------------------------------------" >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "--------------------------" >> $LogFile
echo "backup mysql binlog ok,the $base was be backuped" >> $LogFile