Sou*_*rav 33 linux synchronization files
是否有任何工具可用于在将文件写入磁盘后立即在两个或多个 linux 服务器之间同步文件?该rsync命令不适合我,因为如果我rsync在 cron 中设置,我可以设置的最短时间是 1 分钟,但我需要实时设置。
Mel*_*lan 35
我自己没有使用过,但最近阅读了它。有一个名为 的守护进程lsyncd,我认为它完全符合您的需求。
在此处阅读更多相关信息
Sou*_*rav 13
有一个很好的工具lsyncd可以在多个服务器之间实时同步文件。在这里,我尝试了两台服务器。
主机:Server1 和 Server2
使用的操作系统:CentOS 7
在两台服务器上安装以下软件包。
# yum install -y epel-release
# yum -y install lua lua-devel pkgconfig gcc asciidoc lsyncd
Run Code Online (Sandbox Code Playgroud)
在两个服务器中生成 ssh-key 并添加到authorized_keys文件中。[将server1的公钥添加到server2的文件中authorized_keys,将server2的公钥添加到server1的authorized_keys文件中]
打开/etc/lsyncd.conf并注释掉--在行开头使用的默认配置,并将以下配置添加到文件中。
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"
}
}
Run Code Online (Sandbox Code Playgroud)
更改target参数中的目标IP 。
您可以根据需要更改delay参数。此处设置为 1 秒。
现在创建日志目录。
# mkdir -p /var/log/lsyncd
Run Code Online (Sandbox Code Playgroud)
启用lsyncd服务自动启动。
# systemctl enable lsyncd.service
Run Code Online (Sandbox Code Playgroud)
启动服务。
# systemctl start lsyncd.service
Run Code Online (Sandbox Code Playgroud)
按照与 Server1 相同的配置并更改targetIP。
现在设置同步。
您可以从 tailf /var/log/lsyncd/lsyncd.log
感谢 MelBurslan 的建议。
| 归档时间: |
|
| 查看次数: |
91262 次 |
| 最近记录: |