美文网首页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