首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实时文件同步

实时文件同步
EN

Unix & Linux用户
提问于 2016-08-31 18:42:39
回答 8查看 113.4K关注 0票数 41

在将文件写入磁盘后,是否有任何工具可用于在两个或多个linux服务器之间同步文件?rsync命令不适合我这样做,因为如果我在cron中设置了rsync,我可以设置的最小时间是1分钟,但我需要实时设置。

EN

回答 8

Unix & Linux用户

回答已采纳

发布于 2016-08-31 18:48:50

我没有用过,但最近读到了。有一个名为lsyncd的守护进程,我认为它可以完全满足您的需要。

了解更多关于it的信息,这里

票数 40
EN

Unix & Linux用户

发布于 2016-09-01 10:43:49

多主模式下多服务器间的

实时文件同步

有一个很好的工具叫做lsyncd,可以实时同步多台服务器之间的文件。在这里,我尝试了两台服务器。

主机: Server1和Server2

使用的操作系统: CentOS 7

在两个服务器上安装下面的软件包。

代码语言:javascript
复制
# yum install -y epel-release
# yum -y install lua lua-devel pkgconfig gcc asciidoc lsyncd

在两个服务器中生成ssh-key并添加到authorized_keys文件中。[将server1公钥添加到server1 2‘S authorized_keys中,将server2公钥添加到server1 1’S authorized_keys文件中]

Server1配置

打开/etc/lsyncd.conf并在行首使用--注释掉默认配置,然后将下面的配置添加到文件中。

代码语言:javascript
复制
settings {
  logfile = "/var/log/lsyncd/lsyncd.log",
  delay = 1
}
sync {
  default.rsync,
  source="/home/test/public_html/",
  target="server2:/home/test/public_html/",
  rsync = {
    compress = true,
    acls = true,
    verbose = true,
    owner = true,
    group = true,
    perms = true,
    rsh = "/usr/bin/ssh -p 22 -o StrictHostKeyChecking=no"
  }
}

更改target参数中的目标IP。

您可以根据需要更改delay参数。这里设置为1秒。

现在创建日志目录。

代码语言:javascript
复制
# mkdir -p /var/log/lsyncd

启用lsyncd服务自动启动。

代码语言:javascript
复制
# systemctl enable lsyncd.service

开始服务。

代码语言:javascript
复制
# systemctl start lsyncd.service

Server2配置

遵循与Server1相同的配置,并更改target IP。

现在同步设置好了。

您可以从tailf /var/log/lsyncd/lsyncd.log检查活动。

感谢MelBurslan的建议。

票数 18
EN

Unix & Linux用户

发布于 2017-10-28 11:42:56

同步可能是一种选择。它非常快,传输是加密的,还有多个平台的客户端。它使用"inotify“立即同步已更改的文件。

票数 8
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/307046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档