缥帙各舒散,前后互相逾。这篇文章主要讲述shell脚本系列---自动备份数据库数据相关的知识,希望能为你提供帮助。
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
【shell脚本系列---自动备份数据库数据】2.若用户没有备份权限,则先授权
grant all on webapp.* to backup@localhost identified by "123456";
推荐阅读
- git系列---初始工程文件太大或者文件数太多时,向远程仓库push时总是失败,如何解决()
- Rust中使用模块组织代码
- bat脚本系列---批量修改文件名
- 结合案例总结Flink框架中的最底层API(ProcessFunction)用法
- jenkins系列---jenkins+gitee+vue持续集成到另一台服务器
- linux之同时监控多个日志文件变化
- elk
- web服务Tomcat优化之多实例
- 更改AD DC的电脑名称