#!/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