#!/bin/bash
# 备份数据库
BAK_DIR=/data/backup/`date +%Y%m%d`
MYSQLDB=dexin
MYSQLUSER=root
MYSQLPW=123456
MYSQLCMD=/usr/bin/mysqldump

# 判断是否是root执行的
if [ $UID -ne 0 ];then
    echo "Must use root"
    exit
fi

# 判断目录是否存在
if [ ! -d $BAK_DIR ];then
    mkdir -p $BAK_DIR
    echo "The $BAK_DIR create success."
else
    echo "The $BAK_DIR is exist. "
fi

# 进行备份操作
$MYSQLCMD -u$MYSQLUSER -p$MYSQLPW $MYSQLDB >$BAK_DIR/$MYSQLDB.sql

if [ $? -eq 0 ];then
    echo -e "\033[32m The Mysql $MYSQLDB Backup Success.\033[0m "
else
    echo -e "\033[32m The Mysql $MYSQLDB Backup Failed.\033[0m "
fi 

有意思的,创建用户,判断是否是root 。判断是否成功。定义变量。输出颜色。判断目录,创建目录等。

写一个定时器,

# 备份mysql
0 0 * * * /bin/bash /home/shell/backup.sh >> /tmp/mysql_bak.log 2>&1

查看备份日志

# cat /tmp/mysql_bak.log 
The /data/backup/20181128 is exist. 
mysqldump: [Warning] Using a password on the command line interface can be insecure.
 The Mysql dexin Backup Success.