Linux下Rsync+Sersync搭建与配置,实现日志实时同步
一、简介
1. sersync是基于Inotify开发的,类似于Inotify-tools的工具。
2. sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或某一个目录的名字,然后使用rsync同步的时候,只同步发生变化的这个文件或者这个目录。
二、Rsync+Inotify-tools与Rsync+sersync这两种架构有什么区别?
Rsync+Inotify-tools
1. Inotify-tools只能记录下被监听的目录发生了变化(包括增加、删除、修改),并没有把具体是哪个文件或者哪个目录发生了变化记录下来;
2. rsync在同步的时候,并不知道具体是哪个文件或者哪个目录发生了变化,每次都是对整个目录进行同步,当数据量很大时,整个目录同步非常耗时(rsync要对整个目录遍历查找对比文件),因此,效率很低。
Rsync+sersync
1. sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或某一个目录的名字;
2. rsync在同步的时候,只同步发生变化的这个文件或者这个目录(每次发生变化的数据相对整个同步目录数据来说是很小的,rsync在遍历查找比对文件时,速度很快),因此,效率很高。
小结:当同步的目录数据量不大时,建议使用Rsync+Inotify-tools;当数据量很大(几百G甚至1T以上)、文件很多时,建议使用Rsync+sersync。
三、搭建环境说明
操作系统:CentOS 6.5
源服务器:192.168.3.10 (后面称A); 目录:/usr/local/rsyData/webLog、/usr/local/rsyData/sysLog
目标服务器:192.168.3.11(后面称B1), 192.168.3.12(后面称B2); 目录:/usr/local/rsyLog/web、/usr/local/rsyLog/sys
四、安装与配置
第一部分:分别在目标服务器B1、B2上的操作
1. 关闭 SELINUX
[root@localhost ~]# vi /etc/selinux/config #编辑防火墙配置文件
#进行一下操作:#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq! #保存,退出
[root@localhost ~]# setenforce 0 #立即生效
2. 开启防火墙tcp 873端口(rsync默认端口)
[root@localhost ~]# vi /etc/sysconfig/iptables #编辑防火墙配置文件
#增加下面的内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT
:wq! #保存退出
[root@localhost ~]# /etc/init.d/iptables restart #最后重启防火墙使配置生效
3. 创建rsync用户、用户组
[root@localhost ~]# groupadd rsy #创建组
[root@localhost ~]# useradd -g rsy myRsy #创建用户
[root@localhost ~]# passwd myRsy #设置用户密码
4. 安装Rsync服务端软件
[root@localhost ~]# yum install rsync xinetd #安装
[root@localhost ~]# vi /etc/xinetd.d/rsync #编辑配置文件,设置开机启动rsync
#进行一下操作:disable = no #修改为no
:wq! #保存退出
[root@localhost ~]# /etc/init.d/xinetd start #启动(CentOS中是以xinetd来管理Rsync服务的)
5. 创建rsyncd.conf配置文件
[root@localhost ~]# vi /etc/rsyncd.conf #创建配置文件
#添加以下代码:
#日志文件位置,启动rsync后自动产生这个文件,无需提前创建
log file = /var/log/rsyncd.log
#pid文件的存放位置
pidfile = /var/run/rsyncd.pid
#支持max connections参数的锁文件
lock file = /var/run/rsync.lock
#用户认证配置文件,里面保存用户名称和密码,后面会创建这个文件
secrets file = /etc/rsync.pass
#rsync启动时欢迎信息页面文件位置(文件内容自定义)
motd file = /etc/rsyncd.motd