Linux
實時文件同步
將文件寫入磁碟後,是否有任何工具可用於在兩個或多個 linux 伺服器之間立即同步文件?該
rsync
命令不適合我,因為如果我rsync
在 cron 中設置,我可以設置的最短時間為 1 分鐘,但我需要實時設置。
我自己沒用過,但最近讀到了。有一個名為 的守護程序
lsyncd
,我認為它完全符合您的需要。在此處閱讀有關它的更多資訊
多主模式下多台伺服器之間的實時文件同步
有一個很好的工具
lsyncd
可以在多個伺服器之間實時同步文件。在這裡,我嘗試了兩台伺服器。主機:Server1 和 Server2
使用的作業系統:CentOS 7
在兩台伺服器上安裝以下軟體包。
# yum install -y epel-release # yum -y install lua lua-devel pkgconfig gcc asciidoc lsyncd
在兩個伺服器中生成 ssh-key 並添加到
authorized_keys
文件中。[將 server1 的公鑰添加到 server2 中,將 server2 的公鑰添加authorized_keys
到 server1 的authorized_keys
文件中]伺服器 1 配置
使用行首打開
/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" } }
target
在參數中更改目標 IP 。您可以根據需要更改
delay
參數。這裡設置為 1 秒。現在創建日誌目錄。
# mkdir -p /var/log/lsyncd
使
lsyncd
服務自動啟動。# systemctl enable lsyncd.service
啟動服務。
# systemctl start lsyncd.service
伺服器 2 配置
按照與 Server1 相同的配置並更改
target
IP。現在同步設置好了。
您可以從
tailf /var/log/lsyncd/lsyncd.log
感謝 MelBurslan 的建議。