zoukankan      html  css  js  c++  java
  • mysql备份脚本

    #!/bin/bash
    
    ############功能说明部分#######################################
    #脚本功能是按照每天对mysql数据库中所有表进行备份,备份文件为:数据库名-表名.sql
    #实例:backup/2016-08-25/uic-test.sql
    #测试数据还原实例:mysql -uroot -pxxx uic< backup/2016-08-25/uic-test.sql
    
    ###############脚本变量定义##################################
    MYSQL_HOME=/home/work/mysql
    MYSQL_DUMP=/home/work/mysql/bin/mysqldump
    BACKUP_HOME=/home/work/mysql/backup
    save_time_threshold=7 #备份天数
    BACKUP_DATA_PATH=$BACKUP_HOME/$(date +%F)
    #RM_DATA_PATH=$BACKUP_HOME/$(date -d "-30 days" +%F)
    PASS=$(grep password /home/work/mysql/etc/root.cnf |sed s/[[:space:]]//g|awk -F'=' {'print $2'})
    USER='root'
    HOST='127.0.0.1'
    
    ###############函数部分#######################################
    function backupMysql(){
        local db=$1
        local table=$2
        local dbdir=$3
        local backfile="${dbdir}/${db}-${table}.sql"
        $MYSQL_DUMP --skip-lock-tables -h${HOST} -u${USER} -p${PASS} $db $table | gzip > ${backfile}.gz
    }
    
    ##########脚本逻辑部分#########################################
    ls $BACKUP_HOME &>/dev/null || mkdir $BACKUP_HOME
    chown work.work $BACKUP_HOME
    ls $BACKUP_DATA_PATH &>/dev/null || mkdir $BACKUP_DATA_PATH
    chown work.work $BACKUP_DATA_PATH
    find $BACKUP_HOME/ -maxdepth 1 -type d -mtime +7 -exec rm -rf {} ;
    #if [ -d $RM_DATA_PATH ];then
    #    rm -rf $RM_DATA_PATH    
    #fi
    cd $BACKUP_DATA_PATH || exit
    
    echo "begin backup mysql"
    cmd="show databases"
    cnt=$(mysql -h${HOST} -u${USER} -p${PASS} -s -e "${cmd}")
    for db  in $cnt
    do
        cmd="use $db;show tables"
        tablelist=$(mysql -h${HOST} -u${USER} -p${PASS} -s -e "${cmd}")
        for table in $tablelist
        do
        if [ "$table" == "project_files" ] ;then
            cmd1="use table;SELECT project_id,version,chunk,size from $table"
            mysql -h${HOST} -u${USER} -p${PASS} -s -e "${cmd1}" | gzip > ${BACKUP_DATA_PATH}/${db}-${table}_txt.gz 
        else
            backupMysql "$db" "$table" "$BACKUP_DATA_PATH"
        fi
        done
    done
  • 相关阅读:
    智慧养老民政监管平台建设方案
    CF600E Lomsat gelral dsu on tree
    dsu on tree详解
    【Spring 从0开始】Spring5 新功能,整合日志框架 Log4j2
    【Spring 从0开始】JdbcTemplate 数据库事务管理
    【Spring 从0开始】JdbcTemplate 数据库事务参数
    【Spring 从0开始】JdbcTemplate 数据库事务管理
    【Spring 从0开始】JdbcTemplate 操作数据库
    【Spring 从0开始】AOP 操作
    【Spring 从0开始】AOP 操作中的相关术语、环境准备
  • 原文地址:https://www.cnblogs.com/tengfei520/p/7928700.html
Copyright © 2011-2022 走看看