第十三章实验(一):必备技能rsync同步备份

注意:还原192.168.100.150和192.168.100.151

1.rsync同步备份

1)了解rsync

rsync是一个开源快速备份工具

功能:

可以在不同主机之间镜像同步整个目录树;

支持增量备份

保持权限,链接,支持传输压缩

比较适合做异地备份,镜像服务器

2)rsync角色:

发起端:负责发起rysnc同步操作客户机

备份源:负责响应rysnc的请求的服务器

同步的方向:

上行同步(上传):备份源提供文档的目标位置(data在发起端),发起端使用用户必须对目录有写入的权限

下行同步(下载):备份源负责提供文档原始位置(data在备份源),发起端使用的用户只需要对data有读取权限

3)备份源的类型:rysnc源,ssh源

lqc_必备技能rsync同步备份_第1张图片

4)rsync的基本用法:

local:

rsync -av --delete data/ /tmp ##data是空目录,--delete快速删除/tmp目录

lqc_必备技能rsync同步备份_第2张图片

rsync -av /etc /tmp/ ##复制整个etc目录

lqc_必备技能rsync同步备份_第3张图片

rsync -av /etc/ /tmp ##f复制etc目录的内容

lqc_必备技能rsync同步备份_第4张图片

远程同步备份:SSH

语法:

下行同步:

rsync -avzH 用户@IP:data 本地目录

上行同步:

rsync -avzH data 用户@IP:/远程主机目录

案例:下载

备份源操作:

mkdir /opt/data

touch /opt/data/{1..9}.txt

useradd r_get

echo 123123 |passwd --stdin r_get

lqc_必备技能rsync同步备份_第5张图片

rpm -qa rsync ##确认已经安装rsync软件

netstat -uptln |grep 22

lqc_必备技能rsync同步备份_第6张图片

确认r_get用户对/opt/data有读权限

发起端操作:

rsync -avzH [email protected]:/opt/data/ /tmp ##下载

lqc_必备技能rsync同步备份_第7张图片

rsync -avzH [email protected]:/opt/data /tmp ##对比差异

lqc_必备技能rsync同步备份_第8张图片

rsync -avzH [email protected]:/opt/data/ /tmp --delete ##保证数据一致,下行同步以同步源为依据

lqc_必备技能rsync同步备份_第9张图片

案例:上传

备份源操作:

mkdir /opt/data_bak

useradd r_put

echo 123123 |passwd --stdin r_put

setfacl -m u:r_put:rwx /opt/data_bak ##确保用户对目标目录有写入权限

getfacl /opt/data_bak

lqc_必备技能rsync同步备份_第10张图片

确保rsync和sshd正常

lqc_必备技能rsync同步备份_第11张图片

发起端操作:

mkdir /data

touch /data/{1..9}.avi

rsync -avzH /data [email protected]:/opt/data_bak

lqc_必备技能rsync同步备份_第12张图片

rsync -avzH /data/ [email protected]:/opt/data_bak

lqc_必备技能rsync同步备份_第13张图片

lqc_必备技能rsync同步备份_第14张图片

rsync -avzH /data/ [email protected]:/opt/data_bak --delete

lqc_必备技能rsync同步备份_第15张图片

lqc_必备技能rsync同步备份_第16张图片

在备份源上验证结果。

案例:ssh密钥对认证后rsync同步

ssh-keygen -t rsa

lqc_必备技能rsync同步备份_第17张图片

ssh-copy-id [email protected] ##给下载用户上传公钥匙

lqc_必备技能rsync同步备份_第18张图片

ssh-copy-id [email protected]

lqc_必备技能rsync同步备份_第19张图片

ssh [email protected] ##登录验证,r_put同理

lqc_必备技能rsync同步备份_第20张图片

执行rssync同步验证:

vi /root/bin/rsync.sh

#!/bin/bash

rsync -avzH /data/ [email protected]:/opt/data_bak --delete

rsync -avzH [email protected]:/opt/data/ /tmp --delete

grep rsync /var/spool/cron/root

if [ $? -ne 0 ];then

echo "30 0 * * 6 /root/bin/rsync.sh &>/var/log/rsync.log" >/var/spool/cron/root

:wq

lqc_必备技能rsync同步备份_第21张图片

chmod +x /root/bin/rsync.sh

lqc_必备技能rsync同步备份_第22张图片

2.inotify+rsync实时同步:上行同步

1)安装inotify-tools

tar zxvf inotify-tools-*.tar.gz -C /usr/src/

lqc_必备技能rsync同步备份_第23张图片

cd /usr/src/inotify-tools-*/

./configure &&make &&amake install

lqc_必备技能rsync同步备份_第24张图片

ls /usr/local/bin/inotify*

lqc_必备技能rsync同步备份_第25张图片

2)inotify的使用:

vi /etc/sysctl.conf

fs.inotify.max_queued_events = 16384 ##监控事件队列数

fs.inotify.max_user_instances = 1024 ##监控实例数

fs.inotify.max_user_watches = 1048576 ##监控的文件数量

:wq

lqc_必备技能rsync同步备份_第26张图片

sysctl -p

lqc_必备技能rsync同步备份_第27张图片

inotifywait -mrq -e modify,create,attrib,move,delete /root/data ##-m持续监控,r递归目录,q简化输出,-e指定监控事件:modify修改、create创建、attrib权限修改、move移动、delete删除;在其他终端操作文件,查看变化

lqc_必备技能rsync同步备份_第28张图片

lqc_必备技能rsync同步备份_第29张图片

vi rsync_inotify.sh ##实时同步脚本

#!/bin/bash

RSYNC="rsync -avzH /root/data/ [email protected]:/opt/data_bak/ --delete"

INT_CMD="inotifywait -mrq -e modify,create,move,delete,attrib /root/data/"

$INT_CMD |while read DIRECOTRY EVENT FILE;do

$RSYNC

done

:wq

lqc_必备技能rsync同步备份_第30张图片

chmod +x rsync_inotify.sh

rsync_inotify.sh & ##启动脚本,后台运行

测试验证。

lqc_必备技能rsync同步备份_第31张图片

lqc_必备技能rsync同步备份_第32张图片