真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

實時同步工具原理解釋及環(huán)境準備inotify

實時同步,確保主服務器故障時將丟失數(shù)據(jù)的風險降到最低,實現(xiàn)原理就是當主服務器接收到數(shù)據(jù)時同時復制到另一服務器上,確保有多一份數(shù)據(jù)。

用到的工具:inotify或者sersync,這次使用inotify演示。

我們提供的服務有:成都做網(wǎng)站、成都網(wǎng)站設計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、長壽ssl等。為上千企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的長壽網(wǎng)站制作公司

inotify運行時會時刻監(jiān)控著文件系統(tǒng)(inode、block等屬性)

?

inotify監(jiān)控到目錄有增加、修改、刪除、移動操作時會調用rsync命令將目錄傳輸?shù)綗醾淦魃稀?/font>

實時同步工具原理解釋及環(huán)境準備inotify

?

部署:

安裝inotify,檢查系統(tǒng)是否支持inotify

Linux內核從2.6.13起加入inotify

出現(xiàn)如下所示則表示支持

實時同步工具原理解釋及環(huán)境準備inotify

?

自帶ISO沒有inotify,需要自己下載

https://github.s3.amazonaws.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz

?

安裝inotify需要C編譯器支持,需要提前安裝gcc編譯器

否則可能出現(xiàn)這個錯誤

實時同步工具原理解釋及環(huán)境準備inotify

?

可以使用echo $?查看是否有錯誤 0沒錯誤 1有錯誤

實時同步工具原理解釋及環(huán)境準備inotify

安裝命令:

tar zxf inotify-tools-3.14.tar.gz

cd inotify-tools-3.14/

./configure --prefix=/usr/local/inotify-tools-3.14

echo $?

make && make install

echo $?

ln -s /usr/local/inotify-tools-3.14/ /usr/local/inotify-tools

ls /usr/local/inotify-tools

history

?

一共安裝了2個工具(命令),inotifywaitinotifywatch

Inotifywait:在被監(jiān)控的文件或目錄上等待特定文件系統(tǒng)事件(open、close、delete等)發(fā)生,執(zhí)行后處于阻塞狀態(tài),適合在shell腳本中使用。(監(jiān)控文件狀態(tài))

Inotifywatch:收集被監(jiān)視的文件系統(tǒng)使用度統(tǒng)計數(shù)據(jù),指文件系統(tǒng)時間發(fā)生的次數(shù)統(tǒng)計。

?

Inotifywait

參數(shù)解析:

-r?????遞歸查詢目錄

-q?????打印很少的信息,僅打印監(jiān)控事件的信息

-m???始終保持事件監(jiān)聽狀態(tài)

--excludei?????????排除文件或目錄時,不區(qū)分大小寫

--timefmt?????????指定時間輸出的格式

–format:
%w 表示發(fā)生事件的目錄
%f 表示發(fā)生事件的文件
%e 表示發(fā)生的事件
%Xe 事件以“X”分隔
%T 使用由–timefmt
定義的時間格式

-e 事件

以下選項都是接在-e后面的

實時同步工具原理解釋及環(huán)境準備inotify

?

測試:

2個創(chuàng)建一直監(jiān)控一直執(zhí)行

[root@nfs-server ~]# /usr/local/inotify-tools/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e create /data

?

其中參數(shù)解釋:

-r?????遞歸查詢目錄

-q?????打印很少的信息,僅打印監(jiān)控事件的信息

-m???始終保持事件監(jiān)聽狀態(tài)

?

Timefmt時間戳格式日月年 時分

–format:
%w 表示發(fā)生事件的目錄
%f 表示發(fā)生事件的文件

%T 使用由–timefmt
定義的時間格式

?

?

當我創(chuàng)建文件的是時候會自動記錄。

實時同步工具原理解釋及環(huán)境準備inotify

?[root@nfs-server ~]# /usr/local/inotify-tools/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %e:%w%f' -e create /data

22/11/19 11:21 CREATE:/data/12345.txt

?

創(chuàng)建腳本,當監(jiān)控到文件有變化時自動同步.

#!/bin/bash

inotify=/usr/local/inotify-tools/bin/inotifywait

$inotify -mrq --format '%w%f' -e create,close_write,delete /data \

|while read file

do

?cd /data &&

?rsync -az ./ --delete rsync_backup@192.168.24.32::backup \

?--password-file=/etc/rsync.password

done

全路徑后臺運行該腳本,并且寫入rc.local

?/bin/sh /rsync.sh &

?

這步完成后,基本上每當/data這個目錄有增刪改都會自動同步到backup服務器上的/backup/data目錄上

?

應用場景200~300并發(fā)以內可以使用這套方案(中小型企業(yè))。

?

?

實時同步優(yōu)化及應用極限建議

?

/proc/sys/fs/inotify目錄下有三個文件,對inotify’機制有一定的限制

Max_user_watches:設置inotifywaitinotifywatch命令可以監(jiān)視的文件數(shù)量(單進程)

Max_user_instances:設置每個用戶可以允許的inotifywaitinotifywatch命令的進程數(shù)

Max_queued_events:設置inotify實例時間(event)隊列可容納的時間數(shù)量。

?

Inotify優(yōu)點:

1) 實時數(shù)據(jù)同步

Inotify缺點:

1) 并發(fā)如果大于200個文件(10-100K),同步就會有延遲。

2) 監(jiān)控到事件后,調用rsync同步是單進程的(加&并發(fā)),sersync多進程同步。既然有了inotify-tools,為什么還要sersync?

Sersync功能多:

1)配置文件。

2)真正的守護進程socket

3)可以對失敗文件定時重傳(定時任務)。

4)第三方的HTTP接口。

5)默認多線程同步。

?


分享名稱:實時同步工具原理解釋及環(huán)境準備inotify
標題鏈接:http://weahome.cn/article/pdicph.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部