mysql 一个比较好用的备份脚本 可以进行热备 本人测试好用

urce /root/.bash_profile


today=`date +"%Y_%m_%d"`
bkdir=/opt/new data
today_bkdir=$bkdir/$today


cd $bkdir
if [ ! -d $today_bkdir ] ; then
 mkdir -p $today_bkdir
fi


DATE=`date +%Y%m%d_%H%M`
mysqldump -p123456  --flush-logs --master-data=2 --single-transaction  -R --triggers  newdb --default-character-set=utf8 > $today_bkdir/360 $DATE.sql
LFILE=`mysql -uroot -p123456 -e "show binary logs"|grep "mysql-bin"|awk 'END {print $1}'`
cd $today_bakdir
find $bkdir -type d -mtime +3 -maxdepth 1 -exec rm -rf {} \;

方法二:
#!/bin/sh
source /root/.bash_profile


today=`date +"%Y_%m_%d"`
bkdir=/opt/ data
today_bkdir=$bkdir/$today


cd $bkdir
if [ ! -d $today_bkdir ] ; then
 mkdir -p $today_bkdir
fi


MYSQL_CONN="-uroot -p123456
mysql ${MYSQL_CONN} -A -e"FLUSH TABLES WITH READ LOCK; SELECT SLEEP(86400)" & 
sleep 3
mysql -uroot -padmin -e "show master status;"
mysql -uroot -padmin -e "show slave status\G;"
rsync --recursive /opt/data  $today_bkdir
mysql -uroot -padmin -e "show slave status\G;"
mysql -uroot -padmin -e "show master status;"
SLEEP_ID=`mysql ${MYSQL_CONN} -A -e"SHOW PROCESSLIST;" | grep "SELECT SLEEP(86400)" | awk '{print $1}'`  
mysql ${MYSQL_CONN} -A -e"KILL ${SLEEP_ID}"
cd $today_bakdir


find $bkdir -type d -mtime +2 -maxdepth 1 -exec rm -rf {} \;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/90618/viewspace-1073760/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/90618/viewspace-1073760/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值