美文网首页Linux
远程文件实时同步神器lsyncd安装部署

远程文件实时同步神器lsyncd安装部署

作者: 4ffde5305e8f | 来源:发表于2020-02-24 03:21 被阅读0次

  疫情在家无事,想搞一个实时、双向、多机器的远程文件同步,web镜像的方案。翻来覆去最终选择优秀的开源远程目录同步工具lsyncd。
  lsyncd 是一个支持实时、双向、多机器的多模式文件同步工具。
  Lsyncd使用文件系统事件接口(inotify或fsevents)来监视本地文件和目录的更改。Lsyncd整理这些事件几秒钟,然后生成一个或多个进程以将更改同步到远程文件系统。默认的同步方法是rsync。因此,Lsyncd是一种轻型的实时镜像解决方案。Lsyncd相对易于安装,并且不需要新的文件系统或块设备。Lysncd不会妨碍本地文件系统的性能。
  Lysncd 实际上是lua语言封装了 inotify 和 rsync 工具,采用了 Linux 内核(2.6.13 及以后)里的 inotify 触发机制,然后通过rsync去差异同步,达到实时的效果。完美解决了 inotify + rsync海量文件同步带来的文件频繁发送文件列表的问题,通过时间延迟或累计触发事件次数实现。另外,它的配置方式很简单,lua本身就是一种配置语言,可读性非常强。简单,强大和灵活的配置,使用lua编程可以编写定制自己的逻辑,充满无限可能。Lua真是很强大呀。
  作为rsync的替代方法,Lsyncd还可以通过rsync + ssh推送更改。当文件或目录被重命名或移动到本地树中的新位置时,Rsync + ssh允许更高效的同步。(相反,普通rsync通过删除旧文件然后重新传输整个文件来执行移动。)

  下面直接开始安装部署来实验一下,系统centos7.7 直接通过yum安装:

1. 先安装epel源:
   yum install epel-release
2. 然后安装lsyncd:
   yum install lsyncd

  安装完成后验证一下是否能进行远程实时目录文件同步,简单验证一下,就不用写配置文件了,直接命令行模式
  源主机: 192.168.50.44
  目标主机: 192.168.50.81

1. 创建目录 /www
  mkdir -p /www
2. 启动lsyncd
  lsyncd -nodaemon -rsyncssh /www root@192.168.50.81 /www

-nodeamon 前台模式,日志输出到控制台,调试测试时候使用,用来观察程序行为。
-rsyncssh 使用ssh命令在目标上本地移动目录和文件,
    lsyncd有三种模式: rsync,rsyncssh和direct,默认的是rsync。
/www 表示监控本地/www目录文件变化
root@192.168.50.81 目标主机ssh链接地址
/qyyt 表示目标主机上的目录,将源主机上的/www目录下的内容同步到目标主机上的 /qyyt 目录中,
    如果/qyyt 目录不存在,会自动创建。
image.png

  同步时候会要求输入目标主机密码,后期会配置ssh免密登录,测试时候就不要考虑这个啦。最后一条输出表示,启动成功,已经开始监控/www 目录了
  下面创建文件和目录,看看是否能实时同步到目标主机上去。

  打开另外一个命令行窗口,创建目录和测试文件 image.png   回到启动lsyncd的命令行窗口,输入目标主机ssh密码进行同步 image.png   到目标主机192.168.50.81上看看是否同步过来了 image.png   跟我们在目标主机上的目录结构和内容一模一样,测试同步成功啦。
  这个只是用来测试安装是否成功,以及lsyncd是否能正常使用,正式环境还是要使用配置文件模式来进行的。

  下期详细讲解 lsyncd的配置文件

个人用户或小企业用户,建站后没有运维怎么办?
旗鱼云梯, 专业的SAAS化服务器集群管理云平台, 免费的运维服务专业的技术, 您值得的拥有.
by 旗鱼云梯

相关文章

网友评论

    本文标题:远程文件实时同步神器lsyncd安装部署

    本文链接:https://www.haomeiwen.com/subject/cxduqhtx.html