亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Web服務器 > 正文

inotify+rsync實現實時同步的方法

2024-09-01 13:53:31
字體:
來源:轉載
供稿:網友

1.1 什么是實時同步:如何實現實時同步

要利用監控服務(inotify),監控同步數據服務器目錄中信息的變化

發現目錄中數據產生變化,就利用rsync服務推送到備份服務器上

1.2 實現實時同步的方法

inotify+rsync 方式實現數據同步

sersync 方式實現實時數據同步 詳情參照:sersync實現數據實時同步的方法

1.2.1 實時同步原理介紹

inotify,rsync,實時同步

1.3 inotify+rsync 方式實現數據同步

1.3.1 Inotify簡介

Inotify是一種強大的,細粒度的。異步的文件系統事件監控機制,linux內核從2.6.13起,加入了 Inotify支持,通過Inotify可以監控文件系統中添加、刪除,修改、移動等各種事件,利用這個內核接口,第三方軟件就可以監控文件系統下文件的各種變化情況,而 inotify-tools 正是實施這樣監控的軟件。國人周洋在金山公司也開發了類似的實時同步軟件sersync。

提示信息:

sersync軟件實際上就是在 inotify軟件基礎上進行開發的,功能要更加強大些 ,多了定時重傳機制,過濾機制了提供接口做 CDN,支持多線程橾作。

Inotify實際是一種事件驅動機制,它為應用程序監控文件系統事件提供了實時響應事件的機制,而無須通過諸如cron等的輪詢機制來獲取事件。cron等機制不僅無法做到實時性,而且消耗大量系統資源。相比之下,inotify基于事件驅動,可以做到對事件處理的實時響應,也沒有輪詢造成的系統資源消耗,是非常自然的事件通知接口,也與自然世界事件機制相符合。

inotify的實現有幾款軟件:

inotify-tools,sersync,lrsyncd

1.3.2 inotify+rsync使用方式

inotify 對同步數據目錄信息的監控

rsync 完成對數據信息的實時同步

利用腳本進行結合

1.4 部署inotify軟件的前提

需要2.6.13以后內核版本才能支持inotify軟件。2.6.13內核之后版本,在沒有安裝inotify軟件之前,應該有這三個文件。

[root@backup ~]# ll /proc/sys/fs/inotify/total 0-rw-r--r-- 1 root root 0 Oct 17 10:12 max_queued_events-rw-r--r-- 1 root root 0 Oct 17 10:12 max_user_instances-rw-r--r-- 1 root root 0 Oct 17 10:12 max_user_watches

1.4.1 三個重要文件的說明

 

文件
默認值
作用說明
max_user_watches
8192
設置inotifywait或inotifywatch命令可以監視的文件數量(單進程)
max_user_instances
128
設置每個用戶可以運行的inotifywait或inotifywatch命令的進程數
max_queued_events
16384
設置inotify實例事件(event)隊列可容納的事件數量

 

1.4.3 【官方說明】三個重要文件1.4.2 【服務優化】可以將三個文件的數值調大,監聽更大的范圍

[root@nfs01 ~]# man proc/proc/sys/fs/inotify (since Linux 2.6.13) This directory contains files max_queued_events, max_user_instances, and max_user_watches, that can be used to limit the amount of kernel memory consumed by the inotify interface. for further details, see inotify(7).

通過man手冊的第7級別中查到 inotify的默認文件的詳細說明。

[root@nfs01 ~]# man 7 inotify/proc/sys/fs/inotify/max_queued_events The value in this file is used when an application calls inotify_init(2) to set an upper limit on the number of events that can be queued to the corresponding inotify instance. Events in excess of this limit are dropped, but an IN_Q_OVERFLOW event is always generated./proc/sys/fs/inotify/max_user_instances This specifies an upper limit on the number of inotify instances that can be created per real user ID./proc/sys/fs/inotify/max_user_watches This specifies an upper limit on the number of watches that can be created per real user ID.

1.5 inotify軟件介紹及參數說明

1.5.1 兩種安裝方式

1) yum install -y inotify-tools

2) 手工編譯安裝

注:

YUM 安裝需要有epel源

http://mirrors.aliyun.com

手工編譯安裝方式需要到github上進行下載軟件包

inotify軟件的參考資料鏈接:

https://github.com/rvoicilas/inotify-tools/wiki

1.5.2 inotify主要安裝的兩個軟件

inotifywait: (主要)

在被監控的文件或目錄上等待特定文件系統事件(open close delete等)發生,執行后處于阻塞狀態,適合在shell腳本中使用

inotifywatch:

收集被監控的文件系統使用的統計數據,指文件系統事件發生的次數統計。

說明:在實時實時同步的時候,主要是利用inotifywait對目錄進行監控

1.5.3 inotifywait命令參數說明

 

參數
含義
-m, --monitor
(重要參數)
Keep listening for events forever. Without this option, inotifywait will exit after one event is received.
始終保持事件監聽。
-d, --daemon
111
-r, --recursive
(重要參數)
Watch all subdirectories of any directories passed as arguments.
遞歸監控目錄數據信息變化
-o, --outfile <file>
Print events to <file> rather than stdout.
打印事件到文件中,相當于標準正確輸出
-s, --syslog
Output errors to syslog(3) system log module rather than stderr.
發送錯誤到syslog相當于標準錯誤輸出
-q, --quiet
(重要參數)
If specified once, the program will be less verbose. Specifically, it will not state when it has completed establishing all inotify watches.
輸出信息少(只打印事件信息)
--exclude <pattern>
Exclude all events on files matching the extended regular expression <pattern>.
排除文件或目錄
--excludei <pattern>
Like --exclude but case insensitive.
排除文件或目錄時,不區分大小寫
--timefmt <fmt>
(重要參數)
Print using a specified printf-like format string; read the man page for more details.
指定時間輸出格式
--format <fmt>
(重要參數)
Print using a specified printf-like formatstring; read the man page for more details.
打印使用指定的輸出類似格式字符串;即實際監控輸出內容
-e
(重要參數)
Listen for specific event(s). If omitted, all events are listened for.
指定監聽指定的事件,如果省略,表示所有事件都進行監聽
以上的信息可以通過 inotifywait --help 獲得

 

1.5.4 -e[參數] 可以指定的事件類型
事件名稱
事件說明
access
file or directory contents were read
文件或目錄內容被讀取
modify
file or directory contents were writterv
文件或目錄內容被寫入
attrib
file or directory attributes changed
文件或目錄屬性改變
close_write
(重要參數)
file or directory closed, after being opened in writeable mode.
文件或目錄關閉,在寫入模式打開之后關閉的。
close_nowrite
file or directory closed, after being opened in read-only mode.
文件或目錄關閉,在只讀模式打開之后關閉的
close
file or directory closed, regardless of read/write mode
文件或目錄關閉,不管讀或是寫模式
open
file or directory opened
文件或目錄被打開
moved_to
file or directory moved to watched directory
文件或目錄被移動到監控的目錄中
moved_from
file or directory moved from watched directory
文件或目錄被移動從監控的目錄中
move
(重要參數)
file or directory moved to or from watched directory
文件或目錄不管移動到或是移出監控目錄都觸發事件
create
(重要參數)
file or directory created within watched directory
文件或目錄創建在監控目錄中
delete
(重要參數)
file or directory deleted within watched directory
文件或目錄被刪除在監控目錄中
delete_self
file or directory was deleted
文件或目錄被刪除,目錄本身被刪除
unmount
file system containing file or directory unmounted
以上的信息可以通過 inotifywait --help 獲得

1.5.4.1 【實例】inotifywait監控中的事件測試

1、創建事件

[root@nfs01 data]# touch test2.txt[root@nfs01 ~]# inotifywait -mrq /data --timefmt "%d-%m-%y %H:%M" --format "%T %w%f 事件信息: %e" -e create17-10-17 11:19 /data/test2.txt 事件信息: CREATE

2、刪除事件

[root@nfs01 data]# /rm -f test1.txt[root@nfs01 ~]# inotifywait -mrq /data --timefmt "%d-%m-%y %H:%M" --format "%T %w%f 事件信息: %e" -e delete17-10-17 11:28 /data/test1.txt 事件信息: DELETE

3、修改事件

[root@nfs01 data]# echo "132" > test.txt[root@nfs01 ~]# inotifywait -mrq /data --timefmt "%d-%m-%y %H:%M" --format "%T %w%f 事件信息: %e" -e close_write17-10-17 11:30 /data/test.txt 事件信息: CLOSE_WRITE,CLOSE

4、移動事件 moved_to

[root@nfs01 data]# mv /etc/hosts .[root@nfs01 ~]# inotifywait -mrq /data --timefmt "%d-%m-%y %H:%M" --format "%T %w%f 事件信息: %e" -e moved_to17-10-17 11:33 /data/hosts 事件信息: MOVED_TO

5、移動事件 moved_from

[root@nfs01 data]# mv ./hosts /tmp/[root@nfs01 ~]# inotifywait -mrq /data --timefmt "%d-%m-%y %H:%M" --format "%T %w%f 事件信息: %e" -e moved_from17-10-17 11:34 /data/hosts 事件信息: MOVED_FROM

1.5.5 inotifywait 參數 --format <fmt>格式定義參數

 

命令參數
參數說明
%w(重要參數)
事件出現時,監控文件或目錄的名稱信息
%f(重要參數)
事件出現時,將顯示監控目錄下觸發事件的文件或目錄信息,否則為空
%e(重要參數)
顯示發生的事件信息,不同的事件信息用逗號進行分隔
%Xe
顯示發生的事件信息,不同的事件信息有x進行分隔,可以修改X為指定分隔符
%T(重要參數)
輸出時間格式中定義的時間格式信息,通過 --timefmt option 語法格式指定時間信息
這個格式是通過strftime函數進行匹配時間格式信息的
以上的信息可以通過 inotifywait --help 獲得

 

1.5.6 inotifywait 參數--timefmt <fmt>時間格式參數

 

命令參數
參數說明
%d(重要參數)
The day of the month as a decimal number(range 01 to 31)
每月的第幾天,顯示倍息為十進制數(范圍是 01-31 )
%m(重要參數)
The month as a decimal number (range 01 to 12).
顯示月份,顯示信息為十進制(范圍 01-12 )
%M
The minute as a decimal number (range 00 to 59).
顯示分鐘,顯示信息為十進制(范圍 00-59 )
%y(重要參數)
The year as a decimal number without a century (range 00 to 99).
年份信息,顯示信息為十進制,并且沒有世紀信息
%Y
The year as a decimal number including the century.
年份信息,顯示信息為十進制,并且包含世紀信息
%H
The hour as a decimal number using a 24-hour clock (range 00 to 23).
小時信息,顯示信息為十進制,使用 24小時制(范圍 00-23 )
說明:以上信息可以通過 man strftime信息獲取

 

1.5.6.1 修改輸出的日期格式

[root@nfs01 ~]# inotifywait -mrq /data --timefmt "%d/%m/%y %H:%M" --format "%T %w%f"17/10/17 11:12 /data/test1.txt

1.5.7 -e[參數] 重要監控事件參數匯總表:

 

重要事件
包含事件
備注說明
close
close_write
close_nowrite
文件或目錄關閉,不管讀或是寫模式
即包含寫關閉與讀關閉
close_write
create
包含文件創建事件,但不包含目錄創建事件
move
moved_to
moved_from
文件或目錄不管移動到或是移動出監控目錄都觸發事件
即包含信息移入或移出監控目錄事件
重要參數匯總:根據以上說明,在實際使用時,只要監控以下事件即可
create 創建、 delete 刪除、 movedjto 移入、 close_write 修 改
inotifywait -mrq /data --format "%w%f" -e create,delete,moved_to,close_write
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色偷偷噜噜噜亚洲男人的天堂| 久久视频在线直播| 日韩av免费网站| 曰本色欧美视频在线| 成人av在线亚洲| 欧美日韩国产精品专区| 性色av一区二区三区| 伊人久久综合97精品| 91精品国产91久久久久久最新| 欧美精品激情在线| 成人亚洲综合色就1024| 国产亚洲欧洲在线| 韩国19禁主播vip福利视频| 91社区国产高清| 久久久久亚洲精品成人网小说| 亚洲石原莉奈一区二区在线观看| 亚洲精品视频中文字幕| 日本欧美一级片| 91性高湖久久久久久久久_久久99| 中文字幕欧美亚洲| 国模精品视频一区二区| 夜色77av精品影院| 国产成人av网| 亚洲电影成人av99爱色| 成人免费视频在线观看超级碰| 丰满岳妇乱一区二区三区| 综合av色偷偷网| 成人激情视频小说免费下载| 国产精品一区av| 国产精品69精品一区二区三区| 国产精品亚洲视频在线观看| 欧美性猛交xxx| 欧美在线国产精品| 亚洲欧美日韩精品久久| 亚洲一区免费网站| 亚洲精品97久久| 91日韩在线播放| 日韩av在线网址| 成人激情在线观看| 欧日韩在线观看| 亚洲一区久久久| 亚洲第一男人天堂| 亚洲网址你懂得| 欧美贵妇videos办公室| 午夜精品一区二区三区在线视频| 91久久嫩草影院一区二区| 成人av在线天堂| 一夜七次郎国产精品亚洲| 中文字幕v亚洲ⅴv天堂| 国产精品美女视频网站| 亚洲人a成www在线影院| 欧美成人sm免费视频| 亚洲免费视频网站| 午夜精品久久久99热福利| 国产伦精品免费视频| 日韩中文在线不卡| 国产成人av网址| 92版电视剧仙鹤神针在线观看| 日本亚洲欧洲色α| 日韩欧美在线视频免费观看| 欧美日韩aaaa| 成人黄色免费在线观看| 久久手机免费视频| 91网站在线看| 亚洲一区中文字幕在线观看| 国产免费一区二区三区在线能观看| 亚洲精品综合精品自拍| 亚洲高清免费观看高清完整版| 久久电影一区二区| 亚洲综合日韩中文字幕v在线| 国模视频一区二区三区| 亚洲国产精品久久91精品| 亚洲色图18p| 亚洲国产精品久久精品怡红院| 中文字幕不卡av| 欧美成人sm免费视频| 日韩av在线高清| 日韩毛片在线观看| 亚洲va欧美va在线观看| 欧美在线观看视频| 中文字幕日韩在线视频| 亚洲中国色老太| 日韩精品一区二区视频| 在线成人激情黄色| 97在线视频免费| 亚洲人成电影网站色| 精品成人久久av| 色综合视频网站| 欧美日韩不卡合集视频| 久久久久久午夜| 久久久爽爽爽美女图片| 日韩美女视频免费在线观看| 在线观看久久久久久| 亚洲影院色无极综合| 136fldh精品导航福利| 成人两性免费视频| 91精品国产综合久久香蕉的用户体验| 在线一区二区日韩| 欧美成人免费全部观看天天性色| 91高清在线免费观看| 欧美性高潮床叫视频| 国产一区二区三区在线免费观看| 色一区av在线| 在线观看国产精品日韩av| 成人午夜黄色影院| 日韩免费在线免费观看| 欧美在线视频观看| 亚洲国产精品va| 国产不卡视频在线| 日韩免费电影在线观看| 国产精品美乳一区二区免费| 成人黄在线观看| 高清欧美电影在线| 日韩在线观看成人| 97热在线精品视频在线观看| 成人激情在线观看| 亚洲男人天堂2024| 91精品国产91久久久久久久久| 久久久久久中文字幕| 国产69精品久久久久久| 欧美精品手机在线| 亚洲精品国产福利| 欧美怡红院视频一区二区三区| 亚洲bt欧美bt日本bt| 国产精品极品尤物在线观看| 亚洲免费av电影| 亚洲精品456在线播放狼人| 日韩理论片久久| 欧美日韩成人在线观看| 亚洲社区在线观看| 久久精品91久久香蕉加勒比| 91国内在线视频| 亚洲电影免费观看高清完整版在线| 91在线高清免费观看| 91色视频在线观看| 尤物yw午夜国产精品视频明星| 欧美老女人xx| 懂色av影视一区二区三区| 色偷偷偷亚洲综合网另类| 亚洲精品久久久久久久久| 91欧美视频网站| 在线精品视频视频中文字幕| 亚洲天堂开心观看| 国产一区二区日韩| 在线看欧美日韩| 久久最新资源网| 日本免费久久高清视频| 久久激情五月丁香伊人| 亚洲社区在线观看| 久久中文字幕视频| 国产精品久久久久不卡| 亚洲区一区二区| 亚洲变态欧美另类捆绑| 韩国精品久久久999| 国产精品美女午夜av| 久久99精品久久久久久噜噜| 91久久精品日日躁夜夜躁国产| 国产成人综合久久| 欧美精品久久久久久久久久| 欧美国产日产韩国视频| 欧美日韩xxx| 亚洲va电影大全| 成人午夜一级二级三级| 国产精品欧美日韩一区二区|