shell学习之数据库备份脚本分享

原创 浪子丶刘少  2019-06-10 09:20  阅读 1,471 次 评论 0 条 百度未收录
#!/bin/bash
#auto backup mysql db
#by anthors liushao 2019

if [ -z $3 ]; then
    echo -e '\033[32m--------------------------------------------------\033[0m'
    echo -e '\033[35m请使用一下格式运行此脚本\033[0m'
    echo -e '\033[32m--------------------------------------------------\033[0m'
    echo '/bin/bash $0 user passwd database'
    echo -e '\033[32m--------------------------------------------------\033[0m'
    exit
fi

#define backup path
DATA=`date +%Y`.`date +%m`.`date +%d`_`date +%H`:`date +%M`
#定义数据备份目录
BAK_DIR=/date/backup/`date +%Y`/`date +%m`/`date +%d`
#定义日志存放目录
LOG_DIR=/mnt/log/
#定义日志文件
LOG_FILE=/mnt/log/mysql.log
#定义mysql用户
USER=$1
#定义mysql登录密码
PASSWORD=$2
#定义备份的数据库名
MYSQLDB=$3

#判断是否为root用户
if [ $UID -ne 0 ]; then
    echo "$DATA Must to be use root for exec shell .">> $LOG_DIR/mysql.log
    exit  
fi

#判断日志记录目录是否存在
if [ ! -d $BAK_DIR ]; then
    mkdir -p $LOG_DIR
    echo "$DATA This $LOG_DIR Create Successfully!" >> $LOG_FILE
fi 

#判断备份目录是否存在
if [ ! -d $BAK_DIR ]; then
    mkdir -p $BAK_DIR
    echo "$DATA This $BAK_DIR Create Successfully!" >> $LOG_FILE
else
    echo "$DATA this $BAK_DIR is exists ..." >> $LOG_FILE
fi

#备份操作执行
mysqldump -u$USER -p$PASSWORD  -d $MYSQLDB > $BAK_DIR/$MYSQLDB.sql

#备份操作执行完成后输出
if [ $? -eq 0 ]; then
    echo -e "\033[32mThe Mysql Backup $MYSQLDB Successfully!\033[0m" 
    echo "$DATA The Mysql Backup $MYSQLDB Successfully!"  >> $LOG_FILE
else
    echo -e "\033[32mThe Mysql Backup $MYSQLDB Failed,Please check!\033[0m" 
    echo -"$DATA The Mysql Backup $MYSQLDB Failed ..."  >> $LOG_FILE
fi  
本文地址:https://www.ezliushao.com/207.html
加入我们:请加入刘少技术博客交流群:扫描二维码刘少技术博客的QQ交流群 | 浪子丶刘少 QQ:1150110267(注:微信暂停添加好友)
版权声明:本文为原创文章,版权归 浪子丶刘少 所有,欢迎分享本文,转载请保留出处!

发表评论


表情