#### 增量备份
增量备份是针对于上一次备份(无论是哪种备份):备份上一次备份后,所有发生变化的文件。
实现原理:全量备份+binlog日志文件备份
1、全量备份脚本:
```
#!/bin/bash
#基本设置
user=root
password=zhishuai*niuBI882020+++
db=opencart1
file=`date +"%Y-%m-%d-%H:%M:%S"`-$db.tar.gz
path=/home/fullback/
ip=47.88.90.234
if [ ! -d "$path" ]; then
mkdir "$path"
fi
#备份语句
/www/server/mysql/bin/mysqldump -F -u$user -p$password $db |/bin/gzip >$path$file
#邮件处理
if [ $? -eq 0 ]; then
echo "1、备份已经成功导出....." >email.txt
else
echo "ERROR:备份导出失败......" >email.txt
fi
#推送到另外一台服务器
rsync -av $path$file vanvan@$ip::backup --password-file=/etc/rsyncd.pass
if [ $? -eq 0 ]; then
echo "2、已经成功推送到备份数据库....." >>email.txt
echo "------------------------------------------------" >>email.txt
else
echo "ERROR[2]:数据备份推送失败......" >>email.txt
fi
du -h $path$file >>email.txt
mail -s "数据备份提醒" 2036676949@qq.com <email.txt
```
2、增量备份脚本
```
#!/bin/bash
#======================================================================================
#
# 数据库增量备份 自动备份脚本
#
# @atuhor: vanvan
# @时间:2020年5月7日
#
#======================================================================================
ip=47.88.90.234
file=`tail -1 /www/server/data/mysql-bin.index|cut -c 3-`
path=/www/server/data/
#推送文件
rsync -av $path$file vanvan@$ip::backup --password-file=/etc/rsyncd.pass
if [ $? -eq 0 ]; then
echo "增量备份文件已经推送到服务器47.254.126.150" >email.txt
else
echo "【注意】:增量备份文件推送失败,请检查!" >email.txt
fi
echo "********** 文件备份 ************" >>email.txt
du -h $path$file >>email.txt
mail -s "数据备份提醒" 2036676949@qq.com <email.txt
```
3、rsync配置
**配置服务端**
配置文件 /etc/rsyncd.conf
```
uid = root #工作中指定用户(需要指定用户)
gid = root
use chroot = no #相当于黑洞 出错定位
max connections = 200 #有多少个客户端同时传文件
timeout = 300 #超时时间
pid file = /var/run/rsyncd.pid #进程号文件
lock file = /var/run/rsync.lock #日志文件
log file = /var/log/rsyncd.log #日志文件
[backup] #模块名称随便起
path = /home/vanvan #需要同步的目录
ignore errors #表示出现错误忽略错误
read only = false #表示网络权限可写(本地控制真正可写
write only = no
list = false #i 里设置 IP 或让不让同步
hosts allow = 47.88.51.77/24 #指定允许的网段
hosts deny = 0.0.0.0/32 #拒绝链接的地址,一下表示没有拒绝的链接。
auth users = vanvan #虚拟用户
secrets file = /etc/rsyncd.passwd #虚拟用户的密码文件 客户端传密码校验文件
```
mkdir –p /home/vanvan (创建上传文件目录)
chown nobody vanvan (更改上传目录属主 否则会报错)
touch /etc/rsyncd.passwd (和配置文件里的路径一致)
echo "vanvan:vanvan">/etc/rsyncd.passwd (增加用户名和密码 格式 用户名:密码)
chmod 600 /etc/rsyncd.passwd (赋权限)
rsync --daemon (开启 rsync 服务端)
**配置客户端**
客户端配置
vim /etc/rysncd.pass
把服务端的用户密码输入即可
echo "vanvan" >/etc/rsyncd.pass &&chmod 600 /etc/rsyncd.pass
**测试**
开始客户端推到服务端数据
rsync -av /home/fullback/* vanvan@47.88.90.234::backup --password-file=/etc/rsyncd.pass
rsync -av --delete /root/ rsync@192.168.1.147::lampol --password-file=/etc/rsyncd.passwd
从服务端 拉去数据
rsync -av vanvan@47.254.126.150::backup/2020-05-06-16:09:24-opencart1.tar.gz / --password-file=/etc/rsyncd.pass
**【其他】**
加入定时计划