MySQL 全备与增备方案请参考
本篇主要将全量备份过程整理成 shell 脚本,并定时进行备份。
全备 shell 脚本
编写 shell 脚本innobackup_main.sh如下
#!/bin/sh# Author : happy# Copyright (c) http://www.lemonban.com# Script follows here:host=localhostusername=rootpassword=123456port=3306fileCnf=/etc/my.cnf#远程备份IPremoteHost=192.168.1.101remoteBackdir=/home/tp-backup#参数 例 beginTime='2020-08-10'beginTime=`date +"%Y-%m-%d"`#全备路径 例 /bak/2020-08-10/mainbaseUrl=$backdir/$beginTime/main#日志路径 例 /bak/2020-08-10/log/main.log logUrl=$backdir/$beginTime/log/main.log#全备目录不存在则创建if[! -d"$baseUrl"];thenmkdir -p$baseUrl;break;fi#日志目录不存在则创建if[! -d"$backdir/$beginTime/log/"];thenmkdir -p$backdir/$beginTime/log/fi#首先移除全备目录及全备压缩包rm -fr$baseUrl;rm -fr$baseUrl.tar.gz;#全量备份innobackupex --defaults-file=$fileCnf--user=$username--password=$password--host=$host--no-timestamp$baseUrl1>$logUrl2>&1;#添加到压缩包tar cvzf$baseUrl.tar.gz$baseUrl;#远程备份sleep 3;ssh root@$remoteHost"mkdir -p $remoteBackdir/$beginTime";scp$baseUrl.tar.gz @$remoteHost:$remoteBackdir/$beginTime;
授与执行权限
chmod +x innobackup_main.sh
每日凌晨执行全备脚本
执行如下命令编辑定时任务配置文件(centos 7 下)
crontab -e
加入如下配置,表示每日凌晨1点执行全备脚本
*1* * * /opt/innobackup/innobackup_main.sh
重载生效
systemctl reload crond.service
至此,系统将每天凌晨 1 点执行 MySQL 全备脚本并保存到本地和远程机器上,如本机备份目录下:
[root@iZwz98um4r4f2es3d23uz4Z ~]# cd /home/data/backup/[root@iZwz98um4r4f2es3d23uz4Z backup]# lltotal12drwxr-xr-x4root root4096Aug2109:30 2020-08-21drwxr-xr-x4root root4096Aug2201:59 2020-08-22drwxr-xr-x4root root4096Aug2301:59 2020-08-23[root@iZwz98um4r4f2es3d23uz4Z backup]# cd 2020-08-23/[root@iZwz98um4r4f2es3d23uz4Z 2020-08-23]# lltotal10424drwxr-xr-x2root root4096Aug2301:00 logdrwxr-x---6root root4096Aug2301:59 main-rw-r--r--1root root10665901Aug2301:59 main.tar.gz[root@iZwz98um4r4f2es3d23uz4Z 2020-08-23]#
作者:happy
链接:http://testingpai.com/article/1598170990467
来源:软件测试派论坛
协议:CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0/