#!/bin/bash
##################################################################################
# purpose:mysqldump script
# version:v1.0
# date :2013-07-01
# author :kin zhang
##################################################################################
PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/home/kin/bin:/usr/local/mysql/bin
export PATH
datadir=/db/data
bakdir=/db/backup
bakdate=`date +%Y%m%d`
if [ -f ${bakdir}/binpos.log ]; then
# : #do nothing
# flush binlog
mysql -uroot -pmysql -e 'flush logs'
mysqldump -uroot -pmysql --all-databases > ${bakdir}/${bakdate}_dump.sql
# generating the binlog list
find `ls ${datadir}/mysql-bin.0*` -cnewer `cat ${bakdir}/binpos.log`|sed '$d' > ${bakdir}/list.log
# copying binlog
for i in `cat ${bakdir}/list.log`
do
cp ${i} ${bakdir}
done
# record the last binlog
ls -t ${datadir}/mysql-bin.0*|sed -n '2p' > ${bakdir}/binpos.log
else
read -n1 -p "No Backup before,backup right now [Y|N] ?" choice
case $choice in
Y|y)
mysql -uroot -pmysql -e 'flush logs'
ls -t ${datadir}/mysql-bin.0* |sed -n '2p' > ${bakdir}/binpos.log
mysqldump -uroot -pmysql --all-databases > ${bakdir}/${bakdate}_dump.sql;;
N|n)
echo "OK,bye"
exit 0;;
*)
echo "Wrong choice,bye"
exit 1;;
esac
fi
MySQL-mysqldump backup script
最新推荐文章于 2022-11-01 15:12:31 发布