Rsync基本操作加实时同步演练

Rsync基本操作加实时同步演练
基本原理如图:
Rsync基本操作加实时同步演练
第一、 用SSH源,就只安装使用客户端命令就OK了,相当于scp
例如:
rsync -avz root@192.168.80.181:/bin/* /opt/
rsync -rlvz /opt/ root@192.168.80.181:/tmp/
如果避免交互的话需要配置公钥验证。
ssh-keygen -t rsa
ssh-copy-id root@192.168.80.190

第二、用sync源,则需要对服务端源主机进行配置,新建并配置 rsync源服务器使其可以被同步
yum install -y rsync

vi /etc/rsyncd.conf
uid = nobody
gid = nobody
use chroot = yes
address = 192.168.80.184
port 873
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow = 192.168.80.0/24
[wwwroot]
path = /var/www/html
comment = Document Root of www.benet.com
read only = no
dont compress = .gz .bz2 .tgz .zip .rar .z
auth users = backuper
secrets file = /etc/rsyncd_users.db
建立虚拟用户配置文件并设置恰当的权限
vi /etc/rsyncd_users.db
backuper:abc123
chmod 600 /etc/rsyncd_users.db
启动程序:rsync --daemon
netstat -anpt | grep rsync
Rsync基本操作加实时同步演练
测试源主机文件的下载与上传:
思路:源主机文件位置/var/www/html 共享名wwwroot
在文件夹html里存放实验数据:cp /bin/a /var/www/html
Rsync基本操作加实时同步演练
客户端使用命令进行下载操作:
rsync -avz backuper@192.168.80.184::wwwroot/
./
有密码交互,可以设置去除:
export RSYNC_PASSWORD=abc123 (永久生效则写入/etc/ profile中)
Rsync基本操作加实时同步演练
图1
下载成功
测试客户机上传文件:
思路:首先注意服务器端目录本身以及程序的权限
Rsync基本操作加实时同步演练
只读限制要改为no
文件位置目录属性:
Rsync基本操作加实时同步演练
确认权限没问题后执行本地文件上传操作:
rsync -avz /bin/b* backuper@192.168.80.184::wwwroot
Rsync基本操作加实时同步演练
图2
上传成功

--delete的使用
思路:源主机/var/www/html 下有B开头文件:图2
客户机/srv下有A开头文件:图1
执行下面命令后客户机上A开头文件被删除
rsync -avzH --delete backuper@192.168.80.184::wwwroot /srv
Rsync基本操作加实时同步演练
A开头文件成功删除

实验:
配置Rsync+ inotify实时同步:
原理如图所示:
Rsync基本操作加实时同步演练
思路:源主机上(92.168.80.184)安装inotify监控,若发生改变则将上行同步至目标主机(192.168.80.185)
编译安装inotify
tar xf inotify-tools-3.14.tar.gz -C /opt
cd /opt/inotify-tools-3.14/
./configure
make && make install
配合inotify触发备份、调整内核参数
vi /etc/sysctl.conf
fs.inotify.max_queued_events = 16384 //监控队列大小
fs.inotify.max_user_instances = 1024 //最多监控实例数
fs.inotify.max_user_watches = 1048576 //每个实例最多监控文件数
查看参数设置:sysctl –p
Rsync基本操作加实时同步演练
监控部署完成
下面通过角本完成触发备份任务
vi /opt/inotify_rsync.sh
#!/bin/bash
INOTIFY_CMD="inotifywait –mrq -e modify,create,attrib,move,delete /var/www/html"
RSYNC_CMD="rsync -azH --delete /var/www/html/ root@192.168.80.185:/srv"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
if [ $(pgrep rsync | wc -l) -le 50 ] ; then
$RSYNC_CMD
fi
done

当源主机上行同步时将与目标主机进行密码交互,这是脚本不允许发生的
应将密码交互去除方可不影响脚本执行
ssh-keygen -t rsa //默认全部回车
ssh-copy-id root@192.168.80.15
注意增加脚本的执行权限
执行脚本,开始监控:sh /opt/inotify_rsync.sh &

下面进行实时同步测试:
清空所有主机文件夹里的内容,在源主机上新建、删除等操作,然后查看目标主机相应位置是否同步
Rsync基本操作加实时同步演练
脚本运行中……

Rsync基本操作加实时同步演练

源主机已清空
Rsync基本操作加实时同步演练
目标主机也是空的
在源主机上新建文件夹test123Rsync基本操作加实时同步演练
Rsync基本操作加实时同步演练

监控端已有反馈
查看目标主机是否同步
Rsync基本操作加实时同步演练
发现已顺利同步!

有关其他操作自行实验,本次实时同步实验成功!

转载于:https://blog.51cto.com/13490688/2091612

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值