master crontab
#!/bin/bash
#!/usr/bin/expect
#author yefan
date=`date +%Y%m%d`
if [ -e /tmp/dump$date.log ]
then
mkdir -r /tmp/dump$date.log
fi
echo 'Start dump Master DB...'
echo 'Start dump Master DB...' > /tmp/dump$date.log
#echo $date
#auto dump all database data to dumpdate.sql
/usr/local/mysql/mysqldump -uroot -proot --opt -R test > /tmp/dump$date.sql
if [ -e /tmp/dump$date.sql ]
then
echo 'dump DB success and file name is dump$date.sql'
echo 'dump DB success and file name is dump$date.sql' >>/tmp/dump$date.log
echo 'start rsync sql dump$date.sql to slave'
echo 'start rsync sql dump$date.sql to slave'>>/tmp/dump$date.log
expect -c "
spawn scp -oStrictHostKeyChecking=no /tmp/dump$date.sql root@192.168.213.138:/tmp/
expect \"root@192.168.213.138's password:\"
send \"root\r\"
expect eof "
echo 'trans file to slave success !'
echo 'trans file to slave success !'>>/tmp/dump$date.log
else
echo 'dump is error and no generate sql file!'
echo 'dump is error and no generate sql file!'>/tmp/dump$date.log
fi
#crontab -e
14 02 * * * sh /tmp/dumpMaster2Slave.sh
每天2点14 执行
slave 应用dump.sql脚本
#!/bin/bash
#!/usr/local/mysql/bin/mysql
#author yefan
date=$(date +%Y%m%d)
if [ -e /tmp/dump$date.log ]
then
mkdir /tmp/dump$date.log
fi
echo "start use dump.sql for slave DB">/tmp/dump$date.log
if [ -e /tmp/dump$date.sql ]
then
<pre name="code" class="plain"><span style="white-space:pre"> </span>/usr/local/mysql/<span style="font-family: Arial, Helvetica, sans-serif;">mysql -uroot -proot test </tmp/dump$date.sql</span>
/usr/local/mysql/mysql -uroot -proot -e 'start slave;' rm -rf /tmp/dump$date.sql echo 'delete dump.sql file !!' echo 'delete dump.sql file !!'>>/tmp/dump$date.log else echo 'dump$date.sql is not exist !!' echo 'dump$date.sql is not exist !!'>>/tmp/dump$date.log fiecho "finish use dump.sql for slave DB">>/tmp/dump$date.log
#crontab -e
*/1 * * * * sh /tmp/useDump.sh