??????????????
????#!/bin/bash
????# Name:zbk????????
????# mysql zbk scripts
????# By zxsdw.com
????# Last modify:2015-01-21
????#????????????????????
????user=root
????userPWD=????
????#?????????
????database=?????
????#????????μ?mysql-bin.00000X????????err???????????????????????
????/usr/local/mysql/bin/mysqladmin -u$user -p$userPWD flush-logs
????#????????????λ??
????daily_databakDir=/backup/mysql/daily_backup
????#????MYSQL?????????
????mysqlDataDir=/usr/local/mysql/var
????#???????????????
????eMailFile=$daily_databakDir/email.txt
????#eMail=admin@zxsdw.com
????#???????DATE????20150127
????DATE=`date +%Y%m%d`
????#??????????logFile???
????logFile=$daily_databakDir/mysql$DATE.log
????#??????????
????echo "    " > $eMailFile
????echo "-----------------------" >> $eMailFile
????#??????15-01-27 01:06:17
????echo $(date +"%y-%m-%d %H:%M:%S") >> $eMailFile
????echo "-------------------------" >> $eMailFile
????#???????bin????????Χ??????20150124010540
????TIME=$(date "-d 3 day ago" +%Y%m%d%H%M%S)
????#???????????????????????Χ??????2015-01-26 01:04:11
????StartTime=$(date "-d 1 day ago" +"%Y-%m-%d %H:%M:%S")
????###########?????????????????????##############
????echo "Delete 3 days before the log" >>$eMailFile
????#??????????bin???????????index???????????????????????
????mysql -u$user -p$userPWD -e "purge master logs before ${TIME}" && echo "delete 3 days before log" |tee -a $eMailFile
????#????index???????bin 2?????????????? i??
????filename=`cat $mysqlDataDir/mysql-bin.index |awk -F "/" '{print $2}'`
????for i in $filename
????do
????#########???????????????????????????###########
????echo "$StartTime start backup binlog" >> $eMailFile
????#????mysqlbinlog????1???????????????gzip??????????????????
????/usr/local/mysql/bin/mysqlbinlog -u$user -p$userPWD -d $database --start-datetime="$StartTime" $mysqlDataDir/$i |gzip >> $daily_databakDir/daily$DATE.sql.gz |tee -a $eMailFile
????done
????#??????????????г???????????????????????
????if [ $? = 0 ]
????then
????# ???mtime>32????????????????
????find $daily_databakDir -name "*.log" -type f -mtime +32 -exec rm {} ; > /dev/null 2>&1
????cd $daily_databakDir
????echo "Daily backup succeed" >> $eMailFile
????else
????echo "Daily backup fail" >> $eMailFile
????#mail -s "MySQL Backup" $eMail < $eMailFile #?????????????????
????#fi????IF?ж?
????fi
????#?????eMailFile???????滻logFile????
????cat $eMailFile > $logFile
????#????????IF?ж???????????????mtime>32????????????????
????find $daily_databakDir -name "*.log" -type f -mtime +32 -exec rm {} ; > /dev/null 2>&1
????rsync -vzrtopg --delete --progress --password-file=/usr/local/rsync/rsync.passwd root@$ip:/zxs/allimg/$(date -d -1day +%y%m%d) /zxs/allimg/
????gunzip < /backup/mysql/daily_backup/ceshi.sql.gz | /usr/local/mysql/bin/mysql -u????? -p???? ??????? --force
????--force???? ???????