zoukankan      html  css  js  c++  java
  • 自动化运维——MySQL备份脚本(二)

    使用if语句编写MySQL备份脚本

     代码:

    #!/bin/bash
    #auro backup mysql db
    #by steve yu 2019
    #define backup path 
    
    BAK_DIR=/data/backup/`date +%Y%m%d`
    MYSQLUSR=root
    MYSQLPW=Root123
    MYSQLCMD=/usr/bin/mysqldump
    #ne是代表not equals,$UID是代表用户,0为root用户
    #这边时表示如果不是root用户,则退出
    if [[ $UID -ne 0 ]];then
            echo "Must to be use root for exec Shell."
            exit
    fi
    
    if [[ ! -d $BAK_DIR ]];then
            mkdir -p $BAK_DIR
            echo -e "33[32mThe $BAK_DIR create successfully!33[0m"
    else
            echo -e "33[32mThis $BAK_DIR is exists...33[0m"
    fi
    
    $MYSQLCMD -u$MYSQLUSR -p$MYSQLPW --all-databases > $BAK_DIR/backup.sql
    
    if [[ $? -eq 0 ]];then
    
            echo -e "33[32mMysql backup successfully!33[0m"
    
    else
    
            echo -e "33[32mMysql backup failed!33[0m"
    
    fi

    截图:

    运行结果:

     sh -n 文件名,检查脚本有没有问题

    crontab -e添加定时任务

    0    0 * * * /bin/bash /root/auto_backup_mysql.sh >> /tmp/mysql_bak.log 2>&1

    今日作业,修改上脚本,使得mysql当天不备份2次

    修改后bash脚本

    BAK_DIR=/data/backup/`date +%Y%m%d`
    MYSQLUSR=root
    MYSQLPW=Root123
    MYSQLCMD=/usr/bin/mysqldump
    #ne是代表not equals,$UID是代表用户,0为root用户
    #这边时表示如果不是root用户,则退出
    if [[ $UID -ne 0 ]];then
            echo "Must to be use root for exec Shell."
            exit
    fi
    
    if [[ ! -d $BAK_DIR ]];then
            mkdir -p $BAK_DIR
            echo -e "33[32mThe $BAK_DIR create successfully!33[0m"
    else
            echo -e "33[32mThis $BAK_DIR is exists...33[0m"
    fi
    
    if [[ ! -f $BAK_DIR/backup.sql ]];then
            $MYSQLCMD -u$MYSQLUSR -p$MYSQLPW --all-databases > $BAK_DIR/backup.sql
            if [[ $? -eq 0 ]];then
                    echo -e "33[32mMysql backup successfully!33[0m"
            else
                    echo -e "33[32mMysql backup failed!33[0m"
            fi
    else
            echo -e "33[32mToday is already backuped33[0m"
    fi
  • 相关阅读:
    js浅拷贝和深拷贝
    使用slice和concat对数组的深拷贝和浅拷贝
    JS数组常用方法---8、concat方法
    JS数组常用方法---7、join方法
    js中将类数组转换为数组的几种方法
    JS 使用const声明常量的本质(很多人都有误解)
    JS中对象数组按照对象的某个属性进行排序
    vue源码分析参考---2、数据代理
    vue源码分析参考---1、准备工作
    ES6课程---5、形参默认值
  • 原文地址:https://www.cnblogs.com/littlepage/p/11376304.html
Copyright © 2011-2022 走看看