zoukankan      html  css  js  c++  java
  • mysql备份并升级sql语句

    #!/bin/bash
    
    pass='123456'
    time=`date +%Y%m%d-%H%M`
    db_path=/root/code/xizang_PAD_project/PHP_business_server/tfcms/upgrade/db/
    db_name=tf_syberos_cms
    db_bak=/usr/local/src/backup/$db_name-$time.sql
    
    #Determine the results
    result() {
        if [ $? != 0 ];then
            echo -e "33[31m$1 $faild33[0m" && exit 1
        else
            echo -e "33[32m$1 $ok33[0m"
        fi
    }
    
    #usage $1 is remote ip , $2 is sql file
    usage() {
    if [ $# -lt 2 ];then
        echo -e "33[31m usage: sh $0 ip sql_file33[0m" 
        echo -e "33[31m example: sh $0 172.16.160.99 v1.0.0-v1.1.0.txt 33[0m" 
        echo -e "33[31m explain: 升级主机要配置ssh免密,可以使用auto_ssh.sh 33[0m" && exit 2
    fi
    }
    
    #Backup remote database
    backup_db() {
        ok="backup db ok !";faild="backup db faild !"
        ssh root@$1 "mysqldump -uroot -p$pass -R --opt $db_name > $db_bak"
        result
    
    }
    
    #sql files add transaction
    add_transaction() {
        ok="add transaction ok !";faild="add transaction faild !"
        grep "start transaction" $db_path$2
        if [ $? != 0 ];then
            sed -i '1istart transaction;' $db_path$2
            result
        fi
        grep "commit" $db_path$2
        if [ $? != 0 ];then
            echo "commit;" >> $db_path$2
            result
        fi
    }
    
    # Import sql 
    import_sql() {
        ok="sql execution ok !";faild="sql execution faild !"
        if [ -f $db_path/$2 ];then
            mysql -uroot -p$pass -h$1 tf_syberos_cms < $db_path$2 
            result
        else
            echo -e "33[31m $db_path/$2 file no exist ! 33[0m" && exit 1
        fi
    }
    
    #main function
    main() {
        usage $1 $2
        backup_db $1
        add_transaction $1 $2
        import_sql $1 $2
    }
    
    main $1 $2
  • 相关阅读:
    charles 的 常用功能
    Python中 for循环和while循环的区别
    python元祖,列表和字典区别
    docker 笔记
    mac终端上传下载文件到linux服务器
    索引
    在HTTP1.0协议中持续更新
    彻底理解Cookie session token
    Charles 看这一篇就够了
    最近学习java 项目 eclipse 安装插件后重启出现错误
  • 原文地址:https://www.cnblogs.com/wangmo/p/8028130.html
Copyright © 2011-2022 走看看