#### 增量備份
增量備份是針對于上一次備份(無論是哪種備份):備份上一次備份后,所有發生變化的文件。
實現原理:全量備份+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
**【其他】**
加入定時計劃