rsyn+inotify 远程备份 同步 centos

前端之家收集整理的这篇文章主要介绍了rsyn+inotify 远程备份 同步 centos前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_301_0@rsync开源的备份工具支持增量备份,保持连接和权限,并且采用优化的同步算法,传输前可以执行压缩等功能。所以非常适合远程备份。

@H_301_0@

@H_301_0@ rsync同步数据时,需要扫描所有文件后进行比对,进行差量传输。如果文件数量达到了百万甚至千万量级,扫描所有文件将是非常耗时的。而且正在发生变化的往往是其中很少的一部分,这是非常低效的方式。其次,rsync不能实时的去监测、同步数据,虽然它可以通过linux守护进程的方式进行触发同步,但是两次触发动作一定会有时间差,这样就导致了服务端和客户端数据可能出现不一致,无法在应用故障时完全的恢复数据。基于以上原因,rsync+inotify组合出现了!inotify使用来对文件状态进行检测的一个工具。

@H_301_0@

@H_301_0@rsync同步分为两种方式:

@H_301_0@1:ssh方式 更为安全,保密性强 (因为公司服务器间全部禁rootssh登录所以我选择用rsync方式进行数据同步)

@H_301_0@2:rsync方式

@H_301_0@

@H_301_0@环境配置图

@H_301_0@

wKiom1dvgIKQXdWcAABNi2MVXO0182.png

@H_301_0@rsyn端配置:

@H_301_0@

@H_301_0@1. 安装 rsync 和 xinetd服务(如果系统有的话请自动略过)

@H_301_0@ rsync默认是用 rsync --daemon启动服务的。比较麻烦所以我们要把它添加到xinetd中

@H_301_0@

@H_301_0@

wKioL1dvgOiD9cyvAAA0mhBb6vs119.png

@H_301_0@

@H_301_0@2. 打开/etc/xinetd/rsync文件设置允许xinetd启动rsync服务器

@H_301_0@

@H_301_0@

wKioL1dvgeGSjF3hAABFewnSODs128.png

@H_301_0@

@H_301_0@3.创建rsyncd配置文件并设置备份目录相关信息

@H_301_0@

@H_301_0@ 默认是没有rsyncd.conf这个文件的我们要自己创建。

@H_301_0@

@H_301_0@

wKiom1dvgk3yE1xOAACLcQpe_rg203.png

@H_301_0@补充: auth users可以不是系统用户。这个用户是我们客户端备份时用的用户

@H_301_0@

@H_301_0@4.设置备份所用的maomao用户和密码

@H_301_0@

@H_301_0@编辑/etc/rsync.user文件内容如下:

@H_301_0@

@H_301_0@

wKioL1dvgzjzmYJOAAAYv5eu36I036.png

@H_301_0@

@H_301_0@5.rsync端配置完成。启动服务

@H_301_0@

@H_301_0@

wKiom1dvg6KROR_oAADCjmGJMfw532.png

@H_301_0@

@H_301_0@web端配置

@H_301_0@

  1. @H_301_0@测试下rsync配置是否正常。rsync是否可用。

@H_301_0@

@H_301_0@在rsync端的/usr/local/maomao/目录下创建一个文件。在web端运行以下命令看是否同步到rsync端的/usr/lcoal/maomao/这个目录下的文件。如果到了。说明rsync配置木问题。

@H_301_0@

@H_301_0@

wKioL1dvg4Kj4nemAADlMFt7QjM215.png

@H_301_0@

@H_301_0@

wKioL1dvho6Ahk8nAAAo93C1R74503.png

@H_301_0@rsync语法讲解:

@H_301_0@-r: 递归模式

@H_301_0@-l: 保持符号链接文件

@H_301_0@-v:显示同步详细信息

@H_301_0@-a:归档模式,保留文件权限,属性等等信息。等于-rlptgoD的组合。

@H_301_0@-z: 在传输中压缩文件

@H_301_0@-p:保留文件权限

@H_301_0@-t:保留文件时间

@H_301_0@-g:保留文件属组

@H_301_0@-o: 保留文件属主

@H_301_0@-H:保留硬链接文件

@H_301_0@-D:保留设备及其他特殊文件

@H_301_0@--delete:删除目标位置有而源位置没有的文件

@H_301_0@

@H_301_0@-a:太牛逼了整合了这么多。所以看着挺多的选项现在只要记住5个就可以了。(黑色字体的5个)

@H_301_0@

@H_301_0@2. rsyn同步没问题后,我们配置inotify

@H_301_0@

安装inotify。

wKioL1dviPGx6z0bAAAuGzka7KI805.png

@H_301_0@

@H_301_0@inotify:可以对文件删除,创建,访问,属性修改。等状态进行监控,rsync结合inotify可以实现触发式的备份--只要web端有文件发生变化。就立即进行增量备份。

@H_301_0@

@H_301_0@如果监控的文件数量过大的话,建议修改 inotify内核参数(以下下三个参数要大于监控目标的文件数)

@H_301_0@vi /etc/sysctl.conf

@H_301_0@

@H_301_0@如果配置文件内没有请自行添加

@H_301_0@fs.inotify.max_queued_events = 16384

@H_301_0@fs.inotify.max_user_instances = 2048

@H_301_0@fs.inotify.max_user_watches = 1048576

@H_301_0@

@H_301_0@3. 写触发式同步脚本

@H_301_0@

@H_301_0@

wKioL1dvjD2yIHHAAABI2ScSKsY116.png

@H_301_0@inotify语法讲解

@H_301_0@-m:持续监控

@H_301_0@-r:递归目录

@H_301_0@-q:简化输出信息

@H_301_0@-e:指定监控那些时间后面跟 create,move,delete等。

@H_301_0@

@H_301_0@4.在web端创建同步用户maomao的密码

@H_301_0@

@H_301_0@

wKiom1dvjD2hj8yOAAAgGOk6d2E216.png

@H_301_0@

@H_301_0@5. 测试脚本可用性。

@H_301_0@

@H_301_0@运行脚本 在web的/usr/local/maomao 目录下创建一个maomao_test文件。过一会去rsync端查看下是否同步

@H_301_0@如果脚本可用将脚本加入开机启动中。

@H_301_0@

@H_301_0@echo “/usr/local/maomao/rsync.sh” >> /etc/rc.local

@H_301_0@

@H_301_0@rsyn配置结束。

猜你在找的CentOS相关文章