一.Rsync简介

二.Rsync优点与不足

三.Inotify简介

四.Rsync+Inotify组合实验案例

一.Rsync简介

Rsync(remote synhronize)是一个远程数据同步共组,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。

二.Rsync优点与不足

优点:

快速:第一次同步时rsync会复制全部内容,但在下一次只传输修改过的文件。

安全:rsync允许通过ssh协议来加密传输数据。

更少的带宽:rsync在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。

特权:安装和执行rsync无需特别的权限

缺点:

由于rsync同步数据时,需要扫描所有文件后进行比对,进项差量传输,所以不适宜传输大数据Rsync不能实现实时的去检测文件系统中的添加、删除、修改等操作,无法及时同步数据。

三.Inotify简介

Inotify是一种强大的,细粒度的,异步的文件系统监控机制。Linux内核从2.6.13起,加入了inotify支持,通过inotify可以监控文件系统中添加,删除,修改,移动等各种细微时间,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而inotify-tool就是这样的一个第三方软件。

四.Rsync+Inotify组合实验案例

wKiom1bhKfbiEigOAABODorrnP4242.png

系统、软件说明:

    Centos6.4x86_64;rsync;inotify-tools-3.14.tar.gz

 

Backup服务器安装配置:

1.安装Rsync服务器

[root@localhost ~]# rpm -qa | grep rsync

[root@localhost ~]# yum -y install rsync

创建rsync的配置文件

[root@localhost ~]# vim /etc/rsyncd.conf

wKiom1bhKivSByVFAAA2p5AzBkk662.png

注释:

第1-2行:指定备份的用户和组,root为任何用户

   第3行:  此处传输文件时无需chroot到path参数所指定的目录下

   第4行:  最大连接数

   第5行:  覆盖客户指定的IP超时时间,也就是说rsync服务器不会永远等待一个崩溃的客户端。

   第6-8行:指定pid,lock,log的文件

   第9行:  指定认证模块名称,注意此模块是对外公布的模块

   第10行: 指定备份的路径

   第11行: 可以忽略一些无关的IO错误

   第12行: 允许可读可写

   第13行: 不允许列清单

   第14行: 只允许19.168.0.0网段进行同步,拒绝其它IP

   第15行: 认证的用户名

   第16行: 指定密码文件的存放路径

创建备份目录并设置目录的权限并启动rsync服务

wKiom1bhKm_xmgumAAAZQAt6c1k525.png

wKiom1bhKnCw4YYyAAA1l4cWWAU661.png

wKiom1bhKnPCIdKYAAF_icb5uIA818.png

设置开机启动:

[root@localhost ~]# echo "/usr/bin/rsync--daemon" >> /etc/rc.local

在数据服务器192.168.20.160安装:

  1. 创建认证文件并设置权限:

[root@master ~]# echo "123456789" >/etc/web.passwd && chmod 600 /etc/web.passwd

  1. 服务器进行服务测试:

[root@master ~]# yum -y install rsync

wKiom1bhKqHx4-OlAAAicFtjnBU001.png

此时rsync已经配置成功,但是不能监控文件的变化此时就需要安装inotify。

由于inotify特性需要linux内核版本的支持,在安装inotify-tools前要确认linux系统内核是否达到了2.6.13以上,如果没有,就要重新编译内核。

判断内核是否支持inotify:

wKioL1bhK1uSTGKwAAAKnZeZ0yc990.png

检查系统是否支持inotify

wKiom1bhKxDzGlKLAAAcpHmASdM065.png

如果有以上3个文件说明系统默认是支持inotify功能的

安装inotify-tools工具

wKiom1bhK0CjhJiaAAAT45qy_-U450.png

[root@master inotify-tools-3.14]# ./configure--prefix=/usr/local/inotify

[root@master inotify-tools-3.14]# make && makeinstall

配置脚本并设置权限

wKiom1bhK2mRCAnuAAA4FaiT7WQ845.png

测试:

wKioL1bhLBSgkotfAAA3tA8g-MA391.png

检查结果:

wKioL1bhLDWwBZ7LAAApcchrEzY564.png

设置开机启动:

    echo "/etc/rsync.sh &">> /etc/rc.local

在另外一台主机上做上面同样的操作:

注意修改脚本中的:

des=history161

 

首次启动:

rsync--daemon --config=/etc/rsyncd.conf