lsync安裝配置(目錄同步)

主機列表:
服務端:172.16.2.5/sense2 目標端:172.16.2.4/sense1
服務啓動: /usr/bin/lsyncd /etc/lsyncd.conf
服務關閉:ps -ef |grep lsyncd |grep -v grep |awk '{print $2}'|xargs kill

lsyncd優勢:官網及virbox發版每次都是發佈兩個節點,發版了sense2,同時手動執行scp同步文件到sense1對應目錄下。使用lsyncd避免了scp,簡化了發佈流程,只需在sense2上發版即可,同時防止scp文件容易出錯的情況。

1.服務端(sense2)安裝:

yum install epel-release
yum install lsyncd

2.目標端(sense1)安裝:
yum install rsync

3.服務端配置:

vim /etc/lsyncd.conf
settings  {
        logfile = "/var/log/lsyncd/lsyncd.log",  #日誌文件
        status File = "/var/log/lsyncd/lsyncd.status", #狀態文件
        inotifyMode = "CloseWrite or Modify",  #指定inotify監控事件
}

sync {
    default.rsyncssh,      #同步到遠程主機目錄,rsync的ssh模式,利用ssh傳輸,前提是服務端與目標端建立了信任關係。
    source = "/usr/share/nginx/html/",   #本地目錄同步
    host = "172.16.2.5",   #遠程主機
    targetdir = "/home/data/bakk/", #遠程同步目錄
    delay = 30, #等待rsync同步延時時間,也就是30s時間監控目錄下發生的改動,會累積一次rsync同步。如30s對一個文件做兩次更改,會同步第二次修改的。
    delete = true,   #保持target與source一致。默認參數。這個參數是在剛啓動lsyncd的時候用到,啓動後,在遠程同步目錄做增刪改操作,也不會把本地目錄相應的文件同步過去。
    rsync = {
         binary = "/usr/bin/rsync", 
         owner = true,   #保留服務端的屬主
         group = true,   #保留服務端的屬組
         perms = true,   #保留服務端的權限
        }
}

4.啓動lsync:
/usr/bin/lsyncd /etc/lsyncd.conf

5.測試:

把sense2上的/usr/share/nginx/html同步到sense1/home/data/bakk中。實時的處於監聽目錄改變,有改變就同步。
把sense1上的同步目錄和sense1的/usr/share/nginx/html文件做對比,文件是一致的。
對比方式:find ./bakk  -type f |xargs openssl md5 | awk -F "=" '{print $2}'  >a.txt  
find /usr/share/nginx/html   -type f |xargs openssl md5 | awk -F "=" '{print $2}'  >b.txt   
diff a.txt  b.txt

參考文檔:https://axkibe.github.io/lsyncd/manual/invoking/
https://www.cnblogs.com/zxci/p/6243574.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章