本地lsyncd自动实时同步

通常的linux系统同步都是采用rsync + cron来完成,这样的办法问题就是

  1. 时间太固定,如果是太多的服务器,会对源服务器造成很大的压力
  2. 采用cron来定同步的时间,如果有一次需要马上同步,很难实现

如果你的linux内核是2.6.13以后的版本,这里可以采用inotify内核触发机制,检查只有文件发生变化才同步。 rsync同步一般是pull的形式,从远端直接拉最新的数据到本地,完成同步,当然你也可以push。 lsyncd同步是采用push的形式,syncd 密切监测本地服务器上的参照目录,当发现目录下有文件或目录变更后,立刻通知远程服务器,并通过 rsync 或 rsync+ssh 方式实现文件同步。 lsyncd 默认同步触发条件是每10秒或者每积累到一定的次数写入事件就触发一次,这个是可以配置的。 这里的安装是基于centos 6.4(64bit),lsyncd版本是2.1.4 源地址:192.168.0.11 同步地址:192.168.0.22

安装lsyncd

yum search lsyncd (源服务器安装) 如果找不到这个包,只能说明你没有安装centos的YUM扩展包,必须先安装扩展包

完成扩展包的安装之后,就可以安装lsyncd了

配置lsyncd

打开/etc/lsyncd.conf

—- — User configuration file for lsyncd. — — Simple example for default rsync, but executing moves through on the target. — — For more examples, see /usr/share/doc/lsyncd*/examples/ — — sync{default.rsyncssh, source=”/var/www/html”, host=”localhost”, targetdir=”/tmp/htmlcopy/”}

以上是默认的配置文件,修改配置如下:

如果想得到更为详细的配置文档,可以访问: Settings配置文档

建立ssh无密码登陆

登陆到192.168.0.22,生成登陆密钥

一路回车……

拷贝私钥到192.168.0.11的/root/.ssh/下面

测试是否能不要密码从11登陆到22服务器

启动lsyncd服务

如果重启失败

rsync: Failed to exec /usr/bin/ssh: Permission denied (13) rsync error: error in IPC code (code 14) at pipe.c(84) [sender=3.0.6] rsync: connection unexpectedly closed (0 bytes received so far) [sender] rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6]

请检查系统的selinux是否设置成disabled,如果没有,修改过来就好了

Leave a Reply

Your email address will not be published. Required fields are marked *