大神教你 Lsyncd複製並實時同步到遠端伺服器

2021-08-20 09:25:51 字數 3110 閱讀 2954

lsyncd監視本地目錄樹事件監視器介面(inotify或fsevents)。它聚合並將事件組合在一起幾秒鐘,然後生成乙個(或多個)程序來同步這些更改。預設情況下,由rsync實現同步。因此,lsyncd是一種輕量級的實時映象解決方案,相對容易安裝,不需要新的檔案系統或塊裝置,也不會妨礙本地檔案系統的效能。

lsyncd 2.2.2要求在所有源和目標機器上rsync >= 3.1。

系統環境:

renwoleserver:10.28.204.65 服務端

renwoleclient:10.28.204.66 客戶端

os:centos

linux release 7.4.1708 (core) x64

rsync的安裝

請參閱:《centos7 configuring rsync  server》。
安裝擴充套件依賴包

$ yum install -y gcc gcc-c++ lua lua-devel cmake libxml2 libxml2-devel
源**編譯安裝lsyncd

$ wget 

$ tar xvf release-2.2.2.tar.gz

$ cd lsyncd-release-2.2.2

$ cmake -dcmake_install_prefix=/usr/local/lsyncd

$ make && make install

$ ln -s /usr/local/lsyncd/bin/lsyncd /usr/bin/lsyncd

安裝過程可能報錯:

-- configuring incomplete, errors occurred!

安裝lua-devel即可。

設定無密碼ssh登入

因為這裡使用rsyncssh進行同步,所以還需要配置root賬號無密碼ssh登入。詳細配置請參閱:

《如何在linux中設定ssh無密碼登入》

配置lsyncd

以下是三種常用配置案例

1.遠端同步rsyncssh模式配置方案:

$ vim /etc/lsyncd.conf

settings

sync ,

rsync = ,

ssh =

}

2.本地目錄同步配置方案:

sync
3.遠端同步rsync-daemon模式配置方案

sync ,

delay = 30,

init = false,

rsync =

}}

重點引數說明:

--        # 注釋符

settings # 是全域性配置

sync # 定義同步引數

rsync # 定義同步檔案引數

ssh # 定義伺服器遠端埠

lsyncd配置檔案允許多個sync互不影響。

說明:如果是一對多,請參閱本地同步,修改目標目錄即可。

建立systemctl系統單元檔案

為了實現systemctl進行管理,請建立配置檔案以及指令碼啟動檔案,命令如下:

$ vim /etc/sysconfig/lsyncd

新增如下內容:

lsyncd_options="/etc/lsyncd.conf"

建立啟動檔案:

$ vim /usr/lib/systemd/system/lsyncd.service

新增如下內容:

[unit]

description=live syncing (mirror) daemon

after=network.target

[service]

type=******

environmentfile=-/etc/sysconfig/lsyncd

execstart=/usr/local/lsyncd/bin/lsyncd -nodaemon $lsyncd_options

[install]

wantedby=multi-user.target

啟動lsyncd並加入開機自啟動

$ systemctl start lsyncd

$ systemctl enable lsyncd

[root@renwoleserver ~] $ cat /var/log/lsyncd.log

...fri dec 22 01:19:22 2017 normal: calling rsync with filter-list of new/modified files/dirs

/pchunter_renwole.com.tar.gz

/fri dec 22 01:19:24 2017 normal: finished (list): 0

fri dec 22 01:19:32 2017 normal: calling rsync with filter-list of new/modified files/dirs

/pchunter_renwole.com.tar.gz

/fri dec 22 01:19:34 2017 normal: finished (list): 0

fri dec 22 01:19:34 2017 normal: calling rsync with filter-list of new/modified files/dirs

/pchunter_renwole.com.tar.gz

/fri dec 22 01:19:36 2017 normal: finished (list): 0

日誌內容顯示pchunter_renwole.com.rar檔案成功同步。

另外lsyncd是基於inotify + rsync的開源同步軟體,相對於其他同步軟體更加安全可靠,占用資源更少,但配置略麻煩。

lsyncd 還支援當監控到某個指定事件時就執行什麼樣的命令,由於是通過時間延遲和累計事件命中次數來觸發同步,在設計上要優於inotify,另外他的同步速度完全取決於你的網路質量。

大神教你 在Ubuntu上安裝MongoDB資料庫

mongodb是在現代web應用程式中常用的文件資料庫。本教程應該幫助您設定虛擬專用伺服器,以用作生產應用程式環境的專用mongodb伺服器。第1步 建立droplet 這乙個很容易。一旦你完成,繼續和 ssh 注 建議您配置 ssh 和 sudo 像這樣 第2步 建立安裝指令碼 mongodb安裝...

大神教你在Linux中使用tcpdump命令

一般情況下linux系統會自帶tcpdump工具,如果系統沒有安裝,直接用命令安裝就行了。安裝命令 yum install y tcpdump 檢視安裝版本命令 tcpdump help 檢視網絡卡命令 知道了網絡卡,就可以使用tcpdump工具針對伺服器上的網絡卡監控 過濾網路資料。tcpdump...

大神教你在Linux中使用tcpdump命令

一般情況下linux系統會自帶tcpdump工具,如果系統沒有安裝,直接用命令安裝就行了。安裝命令 yum install y tcpdump 檢視安裝版本命令 tcpdump help 檢視網絡卡命令 知道了網絡卡,就可以使用tcpdump工具針對伺服器上的網絡卡監控 過濾網路資料。tcpdump...