#functionHELPTXT{
echo"/PATH/MysqLbak.sh-f:Youcanbackupalldatabases"
echo"/PATH/MysqLbak.sh-i:Justbackuptheexterchangefromthelastbackup"
echo"/PATH/MysqLbak.sh-d:Backupfromthelastfull-backuptothecurrenttime"
}DATE=`date"+%F-%H-%M-%S"`
MysqL-e"FLUSHTABLESWITHREADLOCK;"
MysqL-e"SHOWMASTERSTATUS;">/dev/null
startfile=/tmp/startposition
exterfile=/tmp/exterpositionwhilegetopts"fdih"OPTS;do
case$OPTSin
f)
MysqLdump--all-databases>/mybackup/db.$DATE
STARTPOSITION=`MysqL-e"SHOWMASTERSTATUS;"|tail-1|awk'{print$2}'>$startfile`
ESTARTPOSITION=`MysqL-e"SHOWMASTERSTATUS;"|tail-1|awk'{print$2}'>$exterfile`
cd/mybackup
tar-cjf/root/bakMysqL/db.$DATE.tar.gz2db.$DATE>/dev/null
;;
d)
MysqL-e"FLUSHTABLESWITHREADLOCK;"
MysqL-e"SHOWMASTERSTATUS;">/dev/null
FILE=`MysqL-e"SHOWMASTERSTATUS;"|tail-1|awk'{print$1}'`
STARTPOSITION=`cat$startfile`
ENDPOSITION=`MysqL-e"SHOWMASTERSTATUS;"|tail-1|awk'{print$2}'`
MysqLbinlog--start-position$STARTPOSITION--stop-position$ENDPOSITION/mydata/data/$FILE>/mybackup/incre.$DATE
cd/mybackup
tar-cjf/root/bakMysqL/incre.$DATE.tar.gz2incre.$DATE>/dev/null
;;
i)
MysqL-e"FLUSHTABLESWITHREADLOCK;"
MysqL-e"SHOWMASTERSTATUS;">/dev/null
FILE=`MysqL-e"SHOWMASTERSTATUS;"|tail-1|awk'{print$1}'`
EENDPOSITION=`MysqL-e"SHOWMASTERSTATUS;"|tail-1|awk'{print$2}'>>$exterfile`
ESTARTPOSITION=`tail-n2$exterfile|head-n1`
Exendposition=`tail-n1$exterfile`
MysqLbinlog--start-position$ESTARTPOSITION--stop-position$Exendposition/mydata/data/$FILE>/mybackup/exter.$DATE
cd/mybackup
tar-cjf/root/bakMysqL/exter.$DATE.tar.gz2exter.$DATE>/dev/null
;;
h)
HELPTXT
;;
esac
done
在crontab-e中添加任务计划,就能实现自动备份数据库了!!希望这个小脚本能够让你更加便捷的管理MysqL数据库,如有问题,可以共同探讨!