zoukankan      html  css  js  c++  java
  • 【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`=====
    ">> $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}` =====
    " >> $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 "
     ===== Job ended at `date +%F' '%T' '%w`===== 
    " >> $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`=====
    ">> $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` *****
    " >> $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`
    " >> $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` *****
    " >> $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 "
     ===== Job ended at `date +%F' '%T' '%w`===== 
    " >> $LOG_FILE


    参考:涂抹MySQL

  • 相关阅读:
    Python开发入门与实战3-Django动态页面
    Python开发入门与实战2-第一个Django项目
    Python开发入门与实战1-开发环境
    牛客网剑指offer第12题——数值的整数次方
    再叙快速排序
    牛客网剑指offer第29题——最小的k个数
    牛客网剑指offer第59题——按之字形顺序打印二叉树
    牛客网剑指offer第33题——第N个丑数
    各种特征距离的计算方法及应用
    牛客网剑指offer第24题——二叉树中和为某一值的路径
  • 原文地址:https://www.cnblogs.com/alen-liu-sz/p/12975675.html
Copyright © 2011-2022 走看看