lsyncd 運用到 inotify , rsync , daemon

inotify 是檔案系統的附加功能,可監控系統檔案變動,kernel 2.6.13 以上被納入核心,類似 Windows 的 Desktop search

rsync 就不用多說了,是 linux 上同步用的好工具

lsyncd 可以背景執行,並定義多久同步不同的、變動過的,也可以用 ssh,反正 rsync 有的,基本上 lsyncd 也有吧!

lsyncd 需要 lua 套件

lsyncd 用了 inotify 機制,我想當資料量大、多時,就不會像只用 rsync 時會很慢的情況,不過要注意 inotify 可使用的數量 ( /proc/sys/fs/inotify/max_user_watches 依需求調整)

參考 : https://code.google.com/p/lsyncd/

使用的版本

lsyncd-2.1.4-4.el6.x86_64

README: https://github.com/axkibe/lsyncd/wiki/Manual-to-Lsyncd-2.1.x

要使用 lsyncd 前提是 目的端要能被來源端可以使用 ssh public key 登入

而 /etc/lsyncd.conf 設定如下

settings {
    logfile = "/var/log/lsyncd/lsyncd.log",
    statusFile = "/var/log/lsyncd/lsyncd-status.log",
--  預設 10 秒更新狀態檔
    statusInterval = 10,
}

sync {
    default.rsync,
    source="/usr/www/discuz",
    target="10.10.10.135:/var/www/vhosts/xfastest.com/httpdocs/discuz",
--  source 端沒此檔, target 端會被刪除
    delete = true,
    rsync = {
        compress = true,
        verbose = true,
        rsh = "/usr/bin/ssh -p 22 -o StrictHostKeyChecking=no",
--      保留權限
        acls = true,
        perms = true,
        owner = true,
        group = true,
    },
--  同步週期,每 20 同步一次
    delay = 20
}

再啟動 lsyncd 即馬上同步

並且要隨時要觀查 /var/log/lsyncd/lsyncd-status.log 的

Inotify watching 322 directories

這個 322 的數值假如有一天快達到

/proc/sys/fs/inotify/max_user_watches

就要加大 max_user_watches 值

Related posts 相關文章
xz liblzma 漏洞後門事件
More...
架設 VPN 服務 – WireGuard – 主打比 IPSec、OpenVPN 更快、安全
More...
ssh 到裝有 cygwin openssh 的 windows 主機卻出現 no kex alg 錯誤
More...
用 rsync 傳資料到 rsyncD 873 會有錯誤 Operation not permitted
More...

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。