目錄之間數(shù)據(jù)同步的最簡單辦法

【lsyncd 工具介紹】

如果想自動同步兩個目錄下的所有文件秕铛,讓兩個或多個目錄保持數(shù)據(jù)完全一致,大多數(shù)情況下就需要使用 inotify-tools 加上 rsync 配合來完成闪唆,inotify-tools 根據(jù) Linux 內(nèi)核對文件的監(jiān)聽所得到的反饋結(jié)果進行觸發(fā)某些操作, rsync 負責進行數(shù)據(jù)傳輸。

或者使用 sersync 等工具來完成, sersync 其實就是 inoify + rsync 二者的合體儡首。

上面的過程想要完成,就需要自己寫腳本來實現(xiàn)業(yè)務需要庐椒,甭管是什么語言椒舵,或者是編輯配置文件蚂踊,改一堆的參數(shù)约谈。

那么有沒有簡單易行的方法來完成這些操作呢?必須有啊犁钟,要不就不會寫這一篇文章了棱诱。所以今天就給大家介紹一個非常方便的工具,它叫 lsyncd涝动。

上面提到的“兩個目錄”有幾種情況:

  1. 兩個目錄處于同一臺服務器上
    • 兩個目錄在同一分區(qū)迈勋;
    • 兩個目錄在同一機器的不同分區(qū);
  2. 兩個目錄分處于兩臺不同的服務器
    • A 和 B 都沒有安裝和啟動 rsync 服務醋粟;
    • A/B 其中一臺機器上啟動了 rsync 服務靡菇;
  3. 其他情形

把這幾種情況都列出來是想說,對于今天所介紹的 lsyncd 這個工具來說米愿,無論什么情況厦凤,都能輕松應對,我們要做的就是好好用它育苟,而不用再想著這種情況應該怎么搞较鼓,那種情況又該怎么弄。


下面就來說這個過程,實在太簡便了:

  1. 安裝 epel博烂,因為我們要的 lsyncd 就藏在里面香椎。

    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    
  2. 安裝 lsyncd

    yum install lsyncd -y
    
  3. 修改配置文件

    [root@xxxxxxxx ~]# cat /etc/lsyncd.conf_bak
    
    sync{
        default.rsync,
        source = "/application",
        target = "/application1",
        delete = true,
        exclude={ "lost+found" },
        rsync = {
            compress = true,
            verbose = true,
            archive  = true,
        }
    }
    
  4. 設置 lsyncd 服務自啟動并順手 start 一下

    systemctl enable lsyncd && systemctl start lsyncd
    
  5. 完成了。


我說了禽篱,今天上面介紹的最簡單的數(shù)據(jù)同步的實現(xiàn)方法畜伐,其實每一個動作都有很多種方法實現(xiàn),比如:

Q1. 安裝過程最簡單是用 yum 進行安裝躺率,如果沒有 yum 呢烤礁?或者你的服務器無法連接互聯(lián)網(wǎng)呢?
A1. 那就還可以先從別的途徑下載源碼編譯安裝肥照,或者下載相應的 .rpm 包進行安裝脚仔。

    git clone https://github.com/axkibe/lsyncd.git
    cd lsncd
    cmake -DCMAKE_INSTALL_PREFIX=/app/lsyncd
    make
    make install

Q2. 這個工具都有什么樣的功能,可以完成哪些工作呢舆绎?
A2. 看A1鏈接中的官方文檔或者自行 google鲤脏,下面是一個很簡單的配置文件的例子說明:

#cat /etc/lsyncd.conf

settings {
logfile ="/var/log/lsyncd/lsyncd.log",
 statusFile ="/var/run/lsyncd.status",
 pidfile = "/var/run/lsyncd.pid",
 delay = 0,

}

sync {
 default.rsyncssh,
 source = "/source/path",
 host = "172.16.1.2",
 targetdir = "/target/path",
 --excludeFrom = "/etc/rsyncd.d/rsync_exclude.lst",
rsync = {
 binary = "/usr/bin/rsync",
 archive = true,
 compress = true,
 verbose = true,
 },
 ssh = {
 port = 22
  }
}

其實里面還有很多很多參數(shù)可以進行設置,就看自己需要了吕朵,我想絕大多數(shù)的需求都是能夠滿足的猎醇,比如下面這些參數(shù)都是可以根據(jù)自己的需求進行設置的,就不一一說了努溃,今天主要是告訴大家有這么個工具可以用硫嘶。

default.rsync
default.rsyncssh
default.direct
init
inotifyMode 
maxProcesses
statusInterval
maxDelays
......

最后提醒一點,inotify-tools 也好梧税, lsyncd 也好沦疾,其實都是根據(jù) linux 的 kernel 特性對增、刪第队、改等事件進行監(jiān)控的哮塞,所以,kernel 的一個參數(shù)就很重要了凳谦,就是下面這個:

#cat /proc/sys/fs/inotify/max_user_watches
8192

8192 就是系統(tǒng)的默認值忆畅,代表能同一個用戶所能監(jiān)控的目錄(不是文件)的數(shù)量,在目錄較深或者子目錄非常多的時候尸执,這個值明顯就不夠用了家凯,不夠用的結(jié)果就是會監(jiān)控的過程中會丟事件,導致新增或者修改的文件都捕捉不到如失,所以我們可以適當改大一些绊诲。

可以直接修改,但重啟機器后會失效:
#sysctl -w fs.inotify.max_user_watches="99999999“

也可以修改內(nèi)核參數(shù)岖常,使之永久生效:
#echo "fs.inotify.max_user_watches=99999999" >> /etc/sysctl.conf 
#sysctl -p

99999999 這個數(shù)字不必非得是65535驯镊,但也別無限大,因為你不給它喘息的機會,讓它玩命地監(jiān)控板惑,它消耗的系統(tǒng)資源也就會相應增加橄镜,同步的延時也會增大,在實時性要求比較高的時候就不太符合要求了冯乘。


我叫索雷鋒洽胶,不謝!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末裆馒,一起剝皮案震驚了整個濱河市姊氓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌喷好,老刑警劉巖翔横,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異梗搅,居然都是意外死亡禾唁,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門无切,熙熙樓的掌柜王于貴愁眉苦臉地迎上來荡短,“玉大人,你說我怎么就攤上這事哆键【蛲校” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵籍嘹,是天一觀的道長闪盔。 經(jīng)常有香客問我,道長噩峦,這世上最難降的妖魔是什么锭沟? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任抽兆,我火速辦了婚禮识补,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘辫红。我一直安慰自己凭涂,他們只是感情好,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布贴妻。 她就那樣靜靜地躺著切油,像睡著了一般。 火紅的嫁衣襯著肌膚如雪名惩。 梳的紋絲不亂的頭發(fā)上澎胡,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音,去河邊找鬼攻谁。 笑死稚伍,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的戚宦。 我是一名探鬼主播个曙,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼受楼!你這毒婦竟也來了垦搬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤艳汽,失蹤者是張志新(化名)和其女友劉穎猴贰,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體河狐,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡糟趾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了甚牲。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片义郑。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖丈钙,靈堂內(nèi)的尸體忽然破棺而出非驮,到底是詐尸還是另有隱情,我是刑警寧澤雏赦,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布劫笙,位于F島的核電站,受9級特大地震影響星岗,放射性物質(zhì)發(fā)生泄漏填大。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一俏橘、第九天 我趴在偏房一處隱蔽的房頂上張望允华。 院中可真熱鬧,春花似錦寥掐、人聲如沸靴寂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽百炬。三九已至,卻和暖如春污它,著一層夾襖步出監(jiān)牢的瞬間剖踊,已是汗流浹背庶弃。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留德澈,地道東北人虫埂。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像圃验,于是被迫代替她去往敵國和親掉伏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容

  • 說明: 操作系統(tǒng):CentOS 5.X 源服務器:192.168.21.129 目標服務器:192.168.21....
    好一朵閱讀 1,237評論 0 0
  • 4層負載均衡和7層負載均衡的區(qū)別澳窑。A斧散、rsync的安裝;軟件包安裝# yum install rsync 注...
    米開朗基樂閱讀 3,645評論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理摊聋,服務發(fā)現(xiàn)鸡捐,斷路器,智...
    卡卡羅2017閱讀 134,601評論 18 139
  • 感謝自己 工作在前兩天終于落實了麻裁,自己這段時間懸著的心也放下了箍镜,對自己,對父母算是有了一個交代煎源,雖然這個交代只是暫...
    鳳笙_252g閱讀 341評論 0 1
  • 昨天因為第一次排課色迂,沒經(jīng)驗,從七點半吃過飯一直排到晚上一點二十手销,連續(xù)幾天的熬夜歇僧,早起,睡眠嚴重不足锋拖,明天科三考試诈悍,...
    四葉草hr閱讀 76評論 0 0