2021-05-12 14:32:11
lsyncd - 多機器實時同步檔案神器
2020-06-16 16:41:08
lsyncd 是一個支援實時、雙向、多機器的多模式檔案同步工具。
使用 Lua 語言封裝了 inotify 和 rsync 工具,採用了 Linux 核心(2.6.13 及以後)裡的 inotify 觸發機制,然後通過 rsync 去差異同步,達到實時的效果。
安裝
在原始檔伺服器上安裝:
yum -y install lsyncd
設定
lsyncd 主組態檔,假設放置在/etc/lsyncd.conf
:
settings {
nodaemon = false,
logfile = "/var/log/lsyncd.log",
statusFile = "/var/log/lsyncd.status",
inotifyMode = "CloseWrite",
maxProcesses = 8
}
-- 可以有多個sync,各自的source,各自的target,各自的模式,互不影響。
sync {
default.rsyncssh,
source = "/home/wwwroot/web1/",
host = "111.222.333.444",
targetdir = "/home/wwwroot/web1/",
-- 忽略檔案路徑規則,可用table也可用外部組態檔
-- excludeFrom = "/etc/lsyncd_exclude.lst",
exclude = {
".svn",
"Runtime/**",
"Uploads/**",
},
-- maxDelays = 5,
delay = 0,
-- init = false,
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true,
verbose = true,
_extra = {"--bwlimit=2000"},
},
}
忽略規則
需要忽略同步的檔案或資料夾,excludeFrom 選項才設定該檔案,exclude 型別的設定不用該組態檔。假設組態檔放在/etc/lsyncd_exclude.lst
。
.svn
Runtime/**
Uploads/**
免密登入
為避免每次都需要手動輸入密碼,可設定為 SSH 免密登入。
啟動
lsyncd -log Exec /etc/lsyncd.conf
參考
相關文章