-
網(wǎng)站實時同步服務:
數(shù)據(jù)備份方法:
定時任務備份數(shù)據(jù): 內(nèi)部人員備份數(shù)據(jù) 備份數(shù)據(jù)最短周期1分鐘
實時同步備份數(shù)據(jù): 外部人員備份數(shù)據(jù)(用戶) 沒有同步等待時間實時同步數(shù)據(jù)原理:
- 監(jiān)視存儲服務器上指定目錄 數(shù)據(jù)信息變化 inotify 監(jiān)控軟件
- 利用同步傳輸數(shù)據(jù)軟件 將變化數(shù)據(jù)傳輸 rsync 傳輸數(shù)據(jù)
- 實現(xiàn)實時傳輸數(shù)據(jù) inotify+rsync 實時同步
-
數(shù)據(jù)監(jiān)控軟件 inotify
作用: 監(jiān)控目錄中數(shù)據(jù)信息變化
第一個里程: 部署安裝軟件
yum install -y inotify-tools --- 系統(tǒng)中epel源是否優(yōu)化/usr/bin/inotifywait 重要 --- 監(jiān)控目錄數(shù)據(jù)信息變化命令 修改 創(chuàng)建 刪除 移動
/usr/bin/inotifywatch 了解 --- 統(tǒng)計目錄產(chǎn)生變化的信息 修改多少次 創(chuàng)建多少次 刪除多少次 移動多少次第二個里程: 掌握inotifywait監(jiān)控命令用法:
--exclude <pattern> --- 進行監(jiān)控數(shù)據(jù)時,指定哪些數(shù)據(jù)信息不要進行監(jiān)控
--excludei <pattern> --- 進行監(jiān)控數(shù)據(jù)時,指定哪些數(shù)據(jù)信息不要進行監(jiān)控 根據(jù)指定數(shù)據(jù)名稱信息 無論大小寫進行排除監(jiān)控
-m|--monitor --- 一直對指定目錄進行監(jiān)控
-r|--recursive --- 遞歸監(jiān)控目錄中數(shù)據(jù)變化
--format <fmt> --- 定義輸出信息格式
%w 監(jiān)控目錄路徑信息
%f 監(jiān)控觸發(fā)事件數(shù)據(jù)信息
%e 相應事件信息
%T 定時觸發(fā)事件時間信息(調(diào)用--timefmt所定義時間格式)
--timefmt <fmt> --- 定義時間格式信息 date "+%F"
-q|--quiet --- 將某些信息不要進行顯示輸出 >/dev/null
-e|--event --- 指定監(jiān)控的事件信息inotify所有事件信息:
access file or directory contents were read
文件或目錄內(nèi)容被讀取
modify file or directory contents were written
文件或目錄內(nèi)容被寫入
attrib file or directory attributes changed
文件或目錄屬性信息改變
close_write file or directory closed, after being opened in writeable mode
文件或目錄被關閉, 在文件打開后寫入新的信息后關閉了文件或目錄
開發(fā): 程序修改數(shù)據(jù)信息
邏輯過程: 打開文件 --- 編輯文件 --- 關閉文件
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
文件或目錄被移動到監(jiān)控目錄中 其他目錄數(shù)據(jù) --> 監(jiān)控目錄(參照目錄) 拉取
moved_from file or directory moved from watched directory
文件或目錄被移動出監(jiān)控目錄 監(jiān)控目錄(參照目錄)數(shù)據(jù) --> 其他目錄中 推送
move file or directory moved to or from watched directory
只要監(jiān)控目錄中,有數(shù)據(jù)移動操作
create file or directory created within watched directory
在監(jiān)控目錄中,有文件或目錄數(shù)據(jù)信息創(chuàng)建操作
delete file or directory deleted within watched directory
在監(jiān)控目錄中,有文件或目錄數(shù)據(jù)信息刪除操作inotifywait -mr /data --format "%T %w %f %e" --timefmt "%F %T" -e create,delete,move,close_write
Setting up watches. Beware: since -r was given, this may take a while!
Watches established.
2019-08-19 17:07:22 /data/oldboy100/ oldboy06.txt CREATE
2019-08-19 17:07:22 /data/oldboy100/ oldboy06.txt CLOSE_WRITE,CLOSE[root@nfs01 /]# inotifywait -mrq /data --format "%T %w %f %e" --timefmt "%F %T" -e create,delete,move,close_write
2019-08-19 17:10:10 /data/oldboy100/ oldboy07.txt CREATE
2019-08-19 17:10:10 /data/oldboy100/ oldboy07.txt CLOSE_WRITE,CLOSEinotify監(jiān)控數(shù)據(jù)變化命令 -- 實現(xiàn)數(shù)據(jù)變化實時同步
inotifywait -mrq /data --format "%w%f" -e create,delete,move,close_write -
實現(xiàn)實時同步數(shù)據(jù)過程:
方法一: 編寫腳本01. 監(jiān)控目錄數(shù)據(jù)信息變化
inotifywait -mrq /data --format "%w%f" -e create,delete,move,close_write|
while read line補充: 腳本循環(huán)用法:
- for 循環(huán) for 變量 in 循環(huán)信息;do 操作命令;done 有限制循環(huán)
- while 循環(huán) while 條件表達式; do 操作命令;done 死循環(huán) 當條件滿足時, 條件為真
- until 循環(huán) until 條件表達式; do 操作命令;done 死循環(huán) 當條件不滿足, 條件為假
02. 將變化數(shù)據(jù)進行實時同步
rsync -avz $line rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
腳本信息:
!/bin/bash
inotifywait -mrq /data --format "%w%f" -e create,delete,move,close_write|
while read line=oldboy03.txt
do
rsync -avz --delete /data/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
done問題:
如何讓腳本文件始終運行
nohup sh /server/scripts/inotify.sh &利用腳本數(shù)據(jù)同步完畢后, 腳本會依舊持續(xù)運行?
cd /data && rsync -az -R "./oldboy02.txt" rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
cd /data && rsync -az -R --delete ./ --include="oldboy01.txt" --exclude=* rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
方式二: 利用軟件 二進制軟件
第一個里程: 下載部署實時同步軟件 sersync-->inotify+rsync
https://github.com/wsgzao/sersync
mkdir /server/tools -p
將軟件保存在此目錄中
unzip sersync_installdir_64bit.zip
cd /server/tools/sersync_installdir_64bit第二個里程: 將解壓好目錄保存到指定目錄中
mv sersync/ /usr/local/第三個里程: 修改軟件配置信息
vim conf/confxml.xml定義 在同步傳輸數(shù)據(jù)時,哪些數(shù)據(jù)不要進行傳輸同步
6 <filter start="false">
7 <exclude expression="(.).svn"></exclude>
8 <exclude expression="(.).gz"></exclude>
9 <exclude expression="^info/"></exclude>
10 <exclude expression="^static/"></exclude>
11 </filter>定義監(jiān)控事件信息
12 <inotify>
13 <delete start="true"/>
14 <createFolder start="true"/>
15 <createFile start="false"/>
16 <closeWrite start="true"/>
17 <moveFrom start="true"/>
18 <moveTo start="true"/>
19 <attrib start="false"/>
20 <modify start="false"/>
21 </inotify>24 <localpath watch="/opt/tongbu">
25 <remote ip="127.0.0.1" name="tongbu1"/>
26
27
28 </localpath>
29 <rsync>
30 <commonParams params="-artuz"/>
31 <auth start="false" users="root" passwordfile="/etc/rsync.pas"/>
32 <userDefinedPort start="false" port="874"/>第四個里程: sersync服務如何啟動
cd /usr/local/sersync/bin/
chmod +x sersync
sersync -dro /usr/local/sersync/conf/confxml.xml顯示數(shù)據(jù)同步過程方法:
修改配置文件:
<debug start="true"/>
第三十五節(jié)課綜合架構實時同步
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來偶器,“玉大人斩萌,你說我怎么就攤上這事啡氢。” “怎么了术裸?”我有些...
- 文/不壞的土叔 我叫張陵倘是,是天一觀的道長。 經(jīng)常有香客問我袭艺,道長搀崭,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任猾编,我火速辦了婚禮瘤睹,結果婚禮上,老公的妹妹穿的比我還像新娘答倡。我一直安慰自己轰传,他們只是感情好,可當我...
- 文/花漫 我一把揭開白布瘪撇。 她就那樣靜靜地躺著获茬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪倔既。 梳的紋絲不亂的頭發(fā)上恕曲,一...
- 文/蒼蘭香墨 我猛地睜開眼安皱,長吁一口氣:“原來是場噩夢啊……” “哼调鬓!你這毒婦竟也來了?” 一聲冷哼從身側響起练俐,我...
- 正文 年R本政府宣布婆硬,位于F島的核電站,受9級特大地震影響奸例,放射性物質(zhì)發(fā)生泄漏彬犯。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一查吊、第九天 我趴在偏房一處隱蔽的房頂上張望谐区。 院中可真熱鬧,春花似錦逻卖、人聲如沸宋列。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽炼杖。三九已至,卻和暖如春仇参,著一層夾襖步出監(jiān)牢的瞬間嘹叫,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 隨著應用系統(tǒng)規(guī)模的不斷擴大,對數(shù)據(jù)的安全性和可靠性也提出的更好的要求或粮,rsync在高端業(yè)務系統(tǒng)中也逐漸暴露出了很多...
- 轉(zhuǎn)載:https://www.cnblogs.com/liangml/p/5959571.html 一.為什么要用...
- 1.1 inotify介紹 inotify是一種強大的导饲、細粒度的、異步的文件系統(tǒng)事件控制機制氯材。linux內(nèi)核從2....
- 1.1 第一個里程碑:安裝sersync軟件 1.1.1 將軟件上傳到服務器當中并解壓 1渣锦、上傳軟件到服務器上 r...
- day35 綜合架構實時同步 課程介紹: 1.實時同步原理概念2.實現(xiàn)實時同步方式3.實現(xiàn)實時同步方式1)利用腳本...