標籤:mysql增量備份指令碼
#!/bin/bash
BakDir=/home/webdata/mysqlbackup/mysqlbackup_log/
BinDir=/home/mysql/var/
LogFile=/home/webdata/mysqlbackup/mysqlbackup_log/bak.log
BinFile=/home/mysql/var/mysql-bin.index
mysqldump -udearedu -p --lock-tables --flush-logs --master-data=1 vkt > /home/webdata/mysqlbackup/mysqlbackup_log/vkt.backup
####重新整理日誌,產生新的日誌並拷貝到相應目錄下
Counter=`wc -l $BinFile |awk ‘{print $1}‘`###計算bin-log索引裡面。Binlog日誌數量
NextNum=0
for file in cat $BinFile`
do
base=`basename $file`擷取去除./檔案名稱
NextNum=`expr $NextNum + 1`
if [ $NextNum -eq $Counter ]
then
echo $base skip! >> $LogFile
else
dest=$BakDir/$base
if(test -e $dest)
then
echo $base exist! >> $LogFile####跳過最後一個bin_log日誌,因為最後一個日誌正在記錄中
else
cp $BinDir/$base $BakDir
echo $base copying >> $LogFile
fi
fi
done
/usr/bin/expect<<EOF
###引入expect,用於互動登入,普通shell指令碼不能實現互動式,輸入密碼自動登入mysql
###下面是自動拷貝到備份伺服器
set timeout 300;
spawn scp -r $BakDir 192.168.0.90:/sde/50_mysqlbackup
expect "*password:"
send "password\r"
sleep 1
expect 1
expect eof
EOF
本文出自 “滿宇帥的技術部落格” 部落格,請務必保留此出處http://manyushuai.blog.51cto.com/8818545/1733283
mysql增量備份指令碼