MySQL 定时备份数据

环境:
Centos7、MySQL 5.6 (Docker 安装)
需求:
实现每小时备份指定的数据库到本地及远程机器

1.shell脚本

#docker 安装Mysql时指定的容器名称
DOCKERNAME=mymysql
#备份的目录
BAKDIR=/data/backup/mysql/`date +%Y-%m-%d-%H`
#备份指定的数据库名称
MYSQLDB=cbec 
#数据库连接密码
MYSQLPW=Qwe123456.
#数据库用户名
MYSQLUSR=root
#数据库服务地址
MYSQLHOST=localhost
#数据库端口号
PORT=3306

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
 
#执行备份操作
#非docker安装执行这条 mysqldump -u$MYSQLUSR -P$PORT -p$MYSQLPW  -h$MYSQLHOST --default-character-set=utf8  $MYSQLDB >$BAKDIR/$MYSQLDB.sql
docker exec -it $DOCKERNAME  mysqldump -u$MYSQLUSR -P$PORT -p$MYSQLPW  -h$MYSQLHOST --default-character-set=utf8  $MYSQLDB >$BAKDIR/$MYSQLDB.sql

#将备份sql文件复制到远程机器(可选)注意这个操作是需要远程密码才能执行的,[使用ssh代替密码登录](https://blog.csdn.net/xyang81/article/details/51477925)
scp -r $BAKDIR root@47.102.202.67:/data/backup/mysql
 
cd $BAKDIR ; tar -czf  $MYSQLDB.tar.gz *.sql
 
 
find  . -type f -name \*.sql |xargs rm -rf
 

[ $? -eq 0 ]&&echo “This `date +%Y-%m-%d` MySQL BACKUP is SUCCESS”
 
cd /data/backup/mysql/ ;find .  -type d  -mtime +30 |xargs rm -rf
 
echo "The mysql backup successfully "


执行脚本:

//添加可执行权限
chmod +x bakupmysql.sh 
//执行
./bakupmysql.sh 

2.编写定时任务

输入crontab -e 添加定时任务,按 i 进入编辑模式,输入:0 */1 * * * /bin/sh /sh/bakupmysql.sh 。保存退出,先按Esc然后输入:wq,最后回车。
最后再静静观察结果,每小时备份一次

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值