1.使用if语句,手写自动备份数据库数据脚本。(粘贴的时候把”//“后面的内容去掉)
vi mysql_back.sh #!/bin/sh #auto backup mysql #wugk 2012-12-12 #Define PATH 定义变量 BAKDIR=/data/backup/mysql/`date +%Y-%m-%d` //备份到哪里,目标目录位置 MYSQLDB=webapp //修改数据库名称为你要备份的库名 MYSQLPW=123456 //用户密码 MYSQLUSR=backup //用户名 MYSQLCMD=/usr/bin/mysqldump
MYSQLDOCKERID=b3a852194e9c
#must use root user run scripts 必须使用 root 用户运行,$UID 为系统变量
if [ $UID -ne 0 ];then
echo This script must use the root user ! ! !
sleep 2
exit 0
fi
#Define DIR and mkdir DIR 判断目录是否存在,不存在则新建
if [ ! -d $BAKDIR ];then
mkdir -p $BAKDIR
else
echo This is $BAKDIR exists....
fi
#Use mysqldump backup mysql 使用 mysqldump 备份数据库
#注掉的命令适用于安装在物理机中的mysql
# $MYSQLCMD -u$MYSQLUSR -p$MYSQLPW -d $MYSQLDB >$BAKDIR/$MYSQLDB.sql
docker exec -i $MYSQLDOCKERID $MYSQLCMD -u$MYSQLUSR -p$MYSQLPW -d $MYSQLDB >$BAKDIR/$MYSQLDB.sql
if [ $? -eq 0 ];then
echo "The mysql backup successfully"
else
echo "The mysql backup failed"
fi
2.若用户没有备份权限,则先授权
grant all on webapp.* to backup@'localhost' identified by "123456";