使用rsync+inotify实现数据实时同步

1. rsync是什么?

rsync(remote synchronize)是Liunx/Unix下的一个远程数据同步工具。它可通过LAN/WAN快速同步多台主机间的文件和目录,并适当利用rsync算法(差分编码)以减少数据的传输。

rsync第一次会全量传输,后续会对比两个文件的不同,只传输文件更新的部分,传输速度比一般工具快。

rsync还可以拷贝、显示目录属性及拷贝文件,并可选择性的压缩及递归拷贝。

1.2 rsync优点和不足

优点:

安全性高
备份迅速,使用同步算法,只比较变化
支持增量备份
保存源目录整个目录树和文件系统
保持源文件的权限、时间、软硬连接等
无需特使权限即可安装
优化流程和比较高的文件传输效率。
多样方式来传输文件。
支持匿名运行,方便网站镜像。
与scp相比,rsync传输速度远在scp之上。(局域网测试,rsync是scp的20倍)
解决对实时性要求不高的数据备份需求

不足:

同步数据,需要扫描所有文件进行对比,才进行差量传输。如果文件数量达到百万甚至千万级,扫描文件对比文件将非常耗时,降低了rsync效率。

rsync不能实时地区监测、同步数据。虽然可以通过守护进程方式触发同步,但两次动作间有时间差,导致数据不一致,无法应对出现故障时完全恢复数据。

2. 初识inotify

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

在上面章节中,我们讲到,rsync可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发rsync同步,这样刚好解决了同步数据的实时性问题。

使用rsync+inotify实现数据实时同步

1、配置rsync源服务器A(同步源提供数据的原始位置,发起端读取同步源的数据)

使用rsync+inotify实现数据实时同步
使用rsync+inotify实现数据实时同步
使用rsync+inotify实现数据实时同步
使用rsync+inotify实现数据实时同步
使用rsync+inotify实现数据实时同步
使用rsync+inotify实现数据实时同步
使用rsync+inotify实现数据实时同步
使用rsync+inotify实现数据实时同步
使用rsync+inotify实现数据实时同步
使用rsync+inotify实现数据实时同步
使用rsync+inotify实现数据实时同步
使用rsync+inotify实现数据实时同步
使用rsync+inotify实现数据实时同步

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章