【MySQL】MySQL之备份自动化脚本

库级备份

[root@strong backup]# more mysql_full_backup.sh 
#!/bin/sh

source /usr/local/mysql/backup/mysql_env.ini

DATA_PATH=/usr/local/mysql/backup
DATA_FILE=${DATA_PATH}/whole_db_bak_`date +%F`.sql.gz
LOG_FILE=${DATA_PATH}/whole_db_bak_`date +%F`.log
MYSQL_PATH=/usr/local/mysql/bin
MYSQL_DUMP="${MYSQL_PATH}/mysqldump -u${USER} -p${PASSWD} -A -R -x --default-character-set=utf8"

echo > $LOG_FILE

echo -e "======= Jobs started at `date +%F' '%T' '%w`=====\n">> $LOG_FILE
echo -e "***** Executed command:${MYSQL_DUMP} | gzip > ${DATA_FILE}" >> $LOG_FILE

${MYSQL_DUMP} | gzip > ${DATA_FILE}

echo -e "***** Executed Finished at `date +%F' '%T' '%w` =====" >> $LOG_FILE
echo -e "***** Backup file size :`du -sh ${DATA_FILE}` =====\n" >> $LOG_FILE

echo -e "---------- Find expired backup and delete those files ----------" >> $LOG_FILE

for dfile in $(/usr/bin/find $DATA_PATH/ -mtime +6)
do
    if [ -d $dfile ] ; then
             rmdir $dfile
    elif [ -f $dfile ] ; then
             rm -f $dfile
    fi
    echo -e "------- Delete file :$dfile ----------" >> $LOG_FILE
done

#echo -e "\n ===== Job ended at `date +%F' '%T' '%w`===== \n" >> $LOG_FILE


分表备份

[root@strong backup]# more mysql_full_backup_by_table.sh 
#!/bin/sh

source /usr/local/mysql/backup/mysql_env.ini

DATA_PATH=/usr/local/mysql/backup/mysql_full_tables
DATA_FILE=${DATA_PATH}/whole_db_bak_by_table_`date +%F`.sql.gz
LOG_FILE=${DATA_PATH}/whole_db_bak_`date +%F`.log
MYSQL_PATH=/usr/local/mysql/bin
MYSQL_CMD="${MYSQL_PATH}/mysql -u${USER} -p${PASSWD}"

MYSQL_DUMP="${MYSQL_PATH}/mysqldump -u${USER} -p${PASSWD} --single-transaction -l "

echo > $LOG_FILE

echo -e "======= Jobs started at `date +%F' '%T' '%w`=====\n">> $LOG_FILE

for dbs in `${MYSQL_CMD} -e "show databases" | sed '1d' | egrep -v "information_schema|mysql|performance_schema|sys"`
do
    mkdir -p ${DATA_PATH}/${dbs}
    echo -e "***** Database :${dbs} Backup Start Time :`date +%F' '%T' '%w` *****\n" >> $LOG_FILE
    
    for tbs in `${MYSQL_CMD} -D $dbs -e "show tables" | sed '1d'`
    do 
       echo -e "##### Begin $dbs.$tbs Dump ! Start Time :`date +%F' '%T' '%w`" >>$LOG_FILE
       echo -e "     Execute Command : ${MYSQL_DUMP} --tables $dbs $tbs | gzip > ${DATA_PATH}/$dbs/$dbs_$tbs.sql.gz" >> $LOG_FILE
       ${MYSQL_DUMP} --tables $dbs $tbs | gzip > ${DATA_PATH}/$dbs/$dbs_$tbs.sql.gz
       echo -e "##### End $dbs.$tbs Dump ! Stop Time :`date +%F' '%T' '%w`\n" >> $LOG_FILE
       echo >> $LOG_FILE
    done

    echo -e "***** Database :$dbs Backup Stop Time :`date +%F' '%T' '%w` *****" >> $LOG_FILE
    echo -e "***** Backup file size :`du -sh ${DATA_PATH}/$dbs` *****\n" >> $LOG_FILE
done

echo -e "---------- Find expired backup and delete those files ----------" >> $LOG_FILE

for dfile in $(/usr/bin/find $DATA_PATH/ -mtime +6)
do
    if [ -d $dfile ] ; then
             rmdir $dfile
    elif [ -f $dfile ] ; then
             rm -f $dfile
    fi
    echo -e "------- Delete file :$dfile ----------" >> $LOG_FILE
done

#echo -e "\n ===== Job ended at `date +%F' '%T' '%w`===== \n" >> $LOG_FILE


参考:涂抹MySQL

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值