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
  • 相关阅读:
    BZOJ 2752: [HAOI2012]高速公路(road)
    codevs 1979 第K个数
    洛谷 P2680 运输计划
    hdu 3501 Calculation 2
    POJ 2417 Discrete Logging
    比较数组和字典
    js事件之event.preventDefault()与event.stopPropagation()用法区别
    alert
    js基本类型的包装对象
    js取自定义data属性
  • 原文地址:https://www.cnblogs.com/tengfei520/p/7928700.html
Copyright © 2011-2022 走看看