文件實(shí)時(shí)同步神器lsyncd配置詳解一

??Lsyncd的配置文件是有效的lua語法,當(dāng)然也支持lua編程,當(dāng)然那是比較高級的用法了后面在簡紹。先介紹基礎(chǔ)的配置。
??Lsyncd的配置主要分兩種:全局配置和局部配置
??由 settings { } 包括的內(nèi)容都屬全局配置,例如:


image.png

??settiings 是lsyncd的內(nèi)置函數(shù),{ }中的內(nèi)容是傳遞的參數(shù)。是lua中函數(shù)的一種調(diào)用方式的簡寫,全寫是這樣:settings({a=1, b=2})

??下面看一下都有哪些設(shè)定參數(shù):
image.png
1. pidfile
      文件記錄lsyncd當(dāng)前進(jìn)程id值,
      如果沒有pid文件,那么則可以啟動(dòng)多個(gè)lsyncd進(jìn)程,
  這會(huì)導(dǎo)致多個(gè)lsyncd進(jìn)程同時(shí)運(yùn)行造成同步的數(shù)據(jù)混亂。
      如果設(shè)置了pid文件,同時(shí)只能啟動(dòng)一個(gè)lsyncd進(jìn)程。
  避免多個(gè)lsyncd進(jìn)程導(dǎo)致同步混亂的情況,pid文件一定要設(shè)置。

2. inotifyMode
      指定lsyncd監(jiān)控的事件,其值有:CloseWrite, Modify, CloseWrite or Modify 
  默認(rèn)是CloseWrite。
      官方文檔寫的是 inotify事件,其實(shí)是不對的 
  lsyncd事件是對inotify事件的包裝,CloseWrite事件是lsyncd的事件。
  我一直以為CloseWrite監(jiān)聽的是 文件寫入關(guān)閉事件,
  可為什么文件刪除和創(chuàng)建也被lsyncd監(jiān)聽并同步了呢?
  其實(shí)CloseWrite事件并不是單一事件而是包含了很多inotify事件,如下:

  CloseWrite包含了以下inotify事件:
    IN_ATTRIB 文件屬性被修改,如 chmod、chown、touch 等
    IN_CLOSE_WRITE 可寫文件被 關(guān)閉
    IN_CREATE創(chuàng)建新文件
    IN_DELETE文件/目錄已在監(jiān)控目錄中刪除
    IN_DELETE_SELF 監(jiān)控的項(xiàng)目本身已刪除
    IN_MOVED_FROM 文件被移出監(jiān)控目錄,如 mv
    IN_MOVED_TO 文件被移動(dòng)到監(jiān)控目錄,如 mv、cp
    IN_DONT_FOLLOW 不追蹤符號鏈接的真實(shí)路徑
    IN_ONLYDIR; 僅監(jiān)視目錄

  Modify是在CloseWrite的基礎(chǔ)上增加了IN_MODIFY事件,并刪除了IN_CLOSE_WRITE事件
    IN_MODIFY 文件已被修改

  CloseWrite or Modify 是在CloseWrite的基礎(chǔ)上增加了IN_MODIFY事件

3. Insist
      默認(rèn)情況下,當(dāng)啟動(dòng)lsyncd失敗時(shí),Lsyncd會(huì)結(jié)束允許并顯示一條錯(cuò)誤消息。
  開啟了容錯(cuò)模式以后,lsyncd并不會(huì)因?yàn)槟硞€(gè)配置的錯(cuò)誤導(dǎo)致啟動(dòng)失敗,
  而是記錄錯(cuò)誤日志并忽略錯(cuò)誤配置繼續(xù)允許。

4. maxProcesses
      lsyncd會(huì)產(chǎn)生一個(gè)子進(jìn)程去運(yùn)行sync任務(wù),
  多個(gè)sync的時(shí)候,lsyncd會(huì)產(chǎn)生多個(gè)子進(jìn)程并發(fā)運(yùn)行sync任務(wù),
  但最多不會(huì)超過maxProcesses的值。

5. maxDelays
      累計(jì)到多少所監(jiān)控的事件激活一次同步,即使后面的sync配置的delay延遲時(shí)間還未到

??好了,全局配置介紹完了,我們寫一個(gè)配置文件簡單測試一下。Lsyncd的默認(rèn)配置文件是 /etc/lsyncd.conf,編輯這個(gè)文件寫我們的配置
image.png
--表示lua中的注釋
sync同步配置
default.direct :本地目錄間同步,使用cp、rm等命令完成差異文件備份
source 同步的源目錄,使用絕對路徑
target 目標(biāo)目錄, 使用絕對路徑

創(chuàng)建源目錄,并啟動(dòng)lsyncd
image.png

日志模式設(shè)置為all,不然日志輸出內(nèi)容不全。
啟動(dòng)成功, 在源目錄中創(chuàng)建文件,看看會(huì)不會(huì)同步到目標(biāo)目錄中


image.png
同步成功,看下日志里面都有什么
image.png

??可以看到 監(jiān)聽了文件創(chuàng)建事件, 文件屬性事件,文件修改事件,這也證明了CloseWrite事件并不是單一事件,而是包含了很多inotify事件
??下期我們講解 lsyncd中最重要的配置 sync同步配置。

個(gè)人用戶或小企業(yè)用戶,建站后沒有運(yùn)維怎么辦?
旗魚云梯, 專業(yè)的SAAS化服務(wù)器集群管理云平臺, 免費(fèi)的運(yùn)維服務(wù)專業(yè)的技術(shù), 您值得的擁有.
by 旗魚云梯

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容