Ftp-Mysql数据库的全量备份和增量备份脚本实例

这个脚本仅仅适合小型数据库,不适合中大型数据库。毕竟是逻辑备份方式,数据库过大导入会比较慢,建议采用innobackupex方式备份,包括我自己服务器也是采用的innobackupex。

全量备份脚本:

#!/bin/bash 
#bak mysql all
TIME=`date +%Y%m%d_%H%M%S`
LOGFILE="/home/mysqlbak/mysql_full_bak_time.log"
MYSQL_BAKDIR="/home/mysqlbak/full$TIME"
USER=root
PASSWORD=xxxxx
[ ! -d ${MYSQL_BAKDIR}  ] &&  mkdir -p ${MYSQL_BAKDIR}
[ ! -e  ${LOGFILE} ] && touch  ${LOGFILE}
DATABASE=`mysqlshow  -u${USER}  -p${PASSWORD}  |  grep  -Ev "Data|info|per|sys" | grep  -v + | awk '{print  $2}'`
for bakmysqlname in ${DATABASE}
do
    cd ${MYSQL_BAKDIR}
    mysqldump  -u${USER}  -p${PASSWORD}  ${bakmysqlname}  --skip-lock-tables > ${bakmysqlname}.sql
    tar zcf ${bakmysqlname}.tar.gz   ${bakmysqlname}.sql --remove-files &> /dev/null
done
ret=$?
FINISHTIME=`date +%Y%m%d_%H%M%S`
 
[ $ret -eq 0 ] && echo  "Mysql fullbakup  finished, time: ${FINISHTIME}">>  ${LOGFILE} || echo "Mysql fullbakup failed,please check time:${FINISHTIME}" >>  $LOGFILE

增量备份脚本:

全量备份+FTP上传+Telem通知

Last updated