国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

rsync+inotify實現數據的實時同步更新

原創
系統 Linux
rsync可以實現觸發式的文件同步,但是通過crontab守護進程方式進行觸發,同步的數據和實際數據會有差異,而inotify可以監控文件系統的各種變化,當文件有任何變動時,就觸發rsync同步,這樣就可以解決同步數據的實時性問題。

【51CTO獨家特稿】rsync可以實現觸發式的文件同步,但是通過crontab守護進程方式進行觸發,同步的數據和實際數據會有差異,而inotify可以監控文件系統的各種變化,當文件有任何變動時,就觸發rsync同步,這樣就可以解決同步數據的實時性問題。

 一、rsync的優點與不足

rsync具有安全性高、備份迅速、支持增量備份等優點,通過rsync可以解決對實時性要求不高的數據備份需求,例如定期的備份文件服務器數據到遠端服務器,對本地磁盤定期做數據鏡像等。

隨著應用系統規模的不斷擴大,對數據的安全性和可靠性也提出的更好的要求,rsync在高端業務系統中也逐漸暴露出了很多不足,首先,rsync同步數據時,需要掃描所有文件后進行比對,進行差量傳輸。如果文件數量達到了百萬甚至千萬量級,掃描所有文件將是非常耗時的。而且正在發生變化的往往是其中很少的一部分,這是非常低效的方式。其次,rsync不能實時的去監測、同步數據,雖然它可以通過Linux守護進程的方式進行觸發同步,但是兩次觸發動作一定會有時間差,這樣就導致了服務端和客戶端數據可能出現不一致,無法在應用故障時完全的恢復數據。基于以上原因,rsync+inotify可以解決這個問題。

二、 初識inotify

Inotify 是一種強大的、細粒度的、異步的文件系統事件監控機制,linux內核從2.6.13起,加入了Inotify支持,通過Inotify可以監控文件系統中添加、刪除,修改、移動等各種細微事件,利用這個內核接口,第三方軟件就可以監控文件系統下文件的各種變化情況,而inotify-tools就是這樣的一個第三方軟件。

我們曾講到,rsync可以實現觸發式的文件同步,但是通過crontab守護進程方式進行觸發,同步的數據和實際數據會有差異,而inotify可以監控文件系統的各種變化,當文件有任何變動時,就觸發rsync同步,這樣剛好解決了同步數據的實時性問題。

三、 安裝inotify工具inotify-tools

由于inotify特性需要Linux內核的支持,在安裝inotify-tools前要先確認Linux系統內核是否達到了 2.6.13以上,如果Linux內核低于2.6.13版本,就需要重新編譯內核加入inotify的支持,也可以用如下方法判斷,內核是否支持 inotify(服務器系統為Centos5.5 x86_64):

uname -r

2.6.18-194.el5

ls -lsart /proc/sys/fs/inotify/

總計 0

0 dr-xr-xr-x 7 root root 0 06-16 00:02 ..
0 -rw-r--r-- 1 root root 0 06-21 11:15 max_user_watches
0 -rw-r--r-- 1 root root 0 06-21 11:15 max_user_instances
0 -rw-r--r-- 1 root root 0 06-21 11:15 max_queued_events
0 dr-xr-xr-x 2 root root 0 06-21 11:15 .

通過以上顯示我們明白,Centos5.5 x86_64是支持inotify的。

四、inotify的簡單介紹

Inotify 是文件系統事件監控機制,作為 dnotify 的有效替代。dnotify 是較早內核支持的文件監控機制。Inotify 是一種強大的、細粒度的、異步的機制,它滿足各種各樣的文件監控需要,不僅限于安全和性能。

inotify 可以監視的文件系統事件包括:

  • IN_ACCESS,即文件被訪問
  • IN_MODIFY,文件被 write
  • IN_ATTRIB,文件屬性被修改,如 chmod、chown、touch 等
  • IN_CLOSE_WRITE,可寫文件被 close
  • IN_CLOSE_NOWRITE,不可寫文件被 close
  • IN_OPEN,文件被 open
  • IN_MOVED_FROM,文件被移走,如 mv
  • IN_MOVED_TO,文件被移來,如 mv、cp
  • IN_CREATE,創建新文件
  • IN_DELETE,文件被刪除,如 rm
  • IN_DELETE_SELF,自刪除,即一個可執行文件在執行時刪除自己
  • IN_MOVE_SELF,自移動,即一個可執行文件在執行時移動自己
  • IN_UNMOUNT,宿主文件系統被 umount
  • IN_CLOSE,文件被關閉,等同于(IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)
  • IN_MOVE,文件被移動,等同于(IN_MOVED_FROM | IN_MOVED_TO)

注:上面所說的文件也包括目錄。#p#

五、rsync+inotify企業應用案例

我們的后端WEB是二臺部署了Nginx的WEB服務器,由于沒有共享存儲,我們現在要實現的是對它們的根目錄/data/htdocs/www實現即時同步更新。

WebServer1:192.168.1.5,Centos5.5 x86_64
WebServer2:192.168.1.6,Centos5.5 x86_64

根目錄均為/data/htdocs/www,自動同步順序為WebServer2à WebServer1,我們將WebServer1配置成rsync的服務器端即可

1.我們首先開始安裝inotify-tools

可以到http://inotify-tools.sourceforge.net/下載相應的inotify-tools版本,然后開始編譯安裝:

cd /usr/local/src
tar zxvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure &&make && make install

2.WebServer1端

即192.168.1.5的rsync,我們配置好/etc/rsyncd.conf文件,如下:

[root@server ~0m]# vim /etc/rsyncd.conf
uid = nobody
gid = nobody
user chroot = no
max connections = 200
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
[www]
path=/data/htdocs/
ignore errors
read only = no
list = no
hosts allow = 192.168.1.0/255.255.255.0
auth users = www
secrets file = /etc/rsyncd.password

然后重啟xinetd即可,如下所示:

/etc/init.d/xinetd restart

記得二臺WEB機器都要配置/etc/rsyncd.passwd文件,rsync的配置過程和原理請大家參考我在51cto.com的rsync配置相關文章,這里就不詳細說明了。

3.我們配置好WebServer2的inotify

讓其開機即啟動,腳本內容如下:

vim /root/rsync.sh
#!/bin/bash
src=/data/htdocs/www/
des=www
ip=192.168.1.5
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e modify,delete,create,attrib $src | while read file
do
rsync -vzrtopg --delete --progress $src www@$ip::$des --password-file=/etc/rsyncd.password &&
echo "$src was rsynced"
done

腳本相關解釋如下:

  • timefmt:指定時間的輸出格式。
  • format:指定變化文件的詳細信息。

這個腳本的作用就是通過inotify監控文件目錄的變化,進而觸發rsync進行同步操作,由于這個過程是一種主動觸發操作,通過系統內核完成的,所以,比起那些遍歷整個目錄的掃描方式,效率要高很多。

然后我們將此腳本放在/etc/rc.local,即在***一行添加,/etc/rc.local文件改動后內容如下:

[root@slave www0m]# cat /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/root/rsync.sh

4.驗證就很容易了

我們可以在192.168.1.6的機器的/data/htdocs/www目錄下新建文件,更改文件內容,我們很欣慰的發現,192.168.1.5的機器上馬上也會發生相應的改變,就像二臺機器是網絡Raid-1樣,非常方便。

總體說來,rsync+inofity比較適用于沒有存儲環境的小文件的即時同步更新,如果要更新的文件非常大而且同步的機器數量在10臺以上時,我建議還是以共享存儲的方法來解決,如果沒有資金購置昂貴的存儲,大家不妨考慮下Heartbeat+DRBD+NFS方案來作為我們的文件服務器。 

參考文檔

http://ixdba.blog.51cto.com/2895551/580280

http://www.ibm.com/developerworks/cn/linux/l-ubuntu-inotify/index.html 

作者簡介:余洪春(博客),網名撫琴煮酒,外企Linux/Unix系統管理員、項目實施工程師,曾擔任紅帽RHCE講師,擅長負載均衡高可用和中小型證券類和電子商務網站架構,目前關注網站架構研究及網絡安全方向。

【編輯推薦】

  1. 如何監控Linux文件系統事件:inotify使用指南
  2. CentOS 5.5下rsync使用技巧與權限問題解讀
  3. inotify監控Linux文件系統的必備利器
  4. FreeBSD 8上的Rsync同步簡易教程
  5. Linux遠程備份工具Rsync使用案例

 

責任編輯:黃丹 來源: 51CTO.com
相關推薦

2023-01-31 08:34:19

2025-04-28 08:10:00

Linuxinotifyrsync

2017-05-25 08:52:08

SQL Server數據庫

2024-07-03 08:02:19

MySQL數據搜索

2020-09-21 11:30:28

CanalMySQL數據庫

2023-05-03 08:58:46

數據庫開源

2022-07-20 23:15:11

Flink數據集CDC

2025-01-10 10:44:52

2018-11-08 10:13:28

Rsync服務器備份

2024-10-30 08:15:18

2024-10-18 11:39:55

MySQL數據檢索

2010-07-01 15:44:22

SQL Server數

2010-10-13 15:02:09

Rsync同步FreeBSDCentOS

2016-12-21 14:06:55

日志實現數據實時抽取

2021-05-27 09:57:55

Inotify監控系統

2010-06-02 16:57:50

MySQL數據庫同步

2024-11-26 08:05:44

2025-04-01 08:38:41

2009-03-09 20:57:28

linuxrsync文件同步備份

2022-05-31 07:40:44

LsyncdCentOS7
點贊
收藏

51CTO技術棧公眾號

精品播放一区二区| 日韩欧美在线电影| 美日韩黄色大片| 欧美精品xxx| 蜜桃国内精品久久久久软件9| 久久久极品av| 成人免费在线播放| 国产免费一区二区| 国产精品一 二 三| 少妇在线看www| 伊人精品在线观看| 成人性生交大片免费看96| 国产ts一区二区| 亚洲一区欧美| 亚洲国产日韩综合一区| 51亚洲精品| 91精品国产免费| 午夜不卡影院| 色综合久久久久综合| 国产精品视频二区三区| 亚洲成人av在线| 亚洲青青一区| 国产精品日韩一区| 久久精品一本| 97成人在线观看视频| 亚洲精品日韩一| 青青在线免费视频| 国产亚洲成年网址在线观看| 最近中文字幕mv2018在线高清| 国产一区二区福利视频| 欧美精品无码一区二区三区| 无码av免费一区二区三区试看 | 精品久久一二三| 亚洲福利国产| 成年人视频观看| 美女在线观看视频一区二区| 91福利视频导航| 免费电影一区二区三区| 狠狠色噜噜狠狠色综合久| 99精品一区二区三区| 成人三级黄色免费网站| 国产成人97精品免费看片| 久久国产精品一区二区| 天天在线女人的天堂视频| 日韩欧美一区二区三区| 亚洲日本japanese丝袜| 99精品欧美一区二区三区综合在线| 亚洲色图16p| 最好看的中文字幕久久| 成年人黄视频在线观看| 久久久久久久香蕉网| 亚洲一区激情| 7777精品久久久大香线蕉小说| 国产乱码字幕精品高清av | 2019av中文字幕| 日韩国产精品久久| 成人性色av| 91精品久久久久久久蜜月| 大西瓜av在线| 欧美日本一区二区在线观看| 国产精品劲爆视频| 在线精品国精品国产尤物884a| 欧美视频福利| 国产精品日日摸夜夜添夜夜av| 国产中文字幕精品| 男操女在线观看| 精品中文字幕视频| 污污片在线免费视频| 欧美成人综合网站| 伊人网在线视频| 久久综合网色—综合色88| 91日韩免费| 日本不卡在线播放| 精品一区二区三区四区五区| 欲色天天网综合久久| 亚洲少妇自拍| 久久涩涩网站| 精品视频免费在线观看| 成人在线观看你懂的| 日韩精品专区在线| 欧美日韩第一区| 中文有码在线观看| 全亚洲最色的网站在线观看| 91蜜桃在线免费视频| 91香蕉视频污版| 亚洲片av在线| 日韩成人一区二区三区在线观看| 成人动漫在线免费观看| 国产欧美久久一区二区| 国产精品久久国产精麻豆99网站 | 日韩精品无码一区二区三区免费| 成人99免费视频| 日本片在线看| 狠狠久久综合婷婷不卡| 午夜精品影院在线观看| 亚洲精品蜜桃乱晃| 综合激情丁香| 免费视频观看成人| 精品久久久av| 国产米奇在线777精品观看| 手机电影在线观看| 日韩一级在线观看| 巨大黑人极品videos精品| 中文字幕一区综合| 亚洲精品91美女久久久久久久| 日本美女一区二区三区视频| 欧美24videosex性欧美| 久久亚洲精品一区| 欧洲杯什么时候开赛| av高清资源| 日韩天堂在线观看| 日韩影院在线观看| 2021国产在线| 亚洲一区美女| 在线日韩中文字幕| 国产无一区二区| 少妇精品在线| caoporn超碰国产公开| 国产精品视频xxxx| 欧美视频在线一区| 裸体素人女欧美日韩| 2020国产在线视频| 懂色av一区二区三区四区五区| 亚洲美女福利视频网站| 久久久久久久久一| 五月婷婷在线视频| 日韩欧美视频一区二区| 亚洲国产日韩欧美综合久久| 国产98色在线|日韩| 神马精品久久| 亚洲黄色www| 国产激情精品久久久第一区二区 | 国产私拍精品| 视频一区二区三区免费观看| 亚洲男人的天堂网站| 99精品欧美一区二区三区小说| 亚洲高清999| 色老板视频在线观看| 99re在线观看视频| 精品少妇一区二区三区日产乱码| 国产一区美女在线| 精品自拍偷拍| 92国产在线视频| 干日本少妇视频| 国产69久久精品成人| 欧美日韩你懂得| 成人性生交大片免费| 欧州一区二区| 国内在线视频| 91在线高清视频| 欧美精品v日韩精品v韩国精品v| 久久久久久穴| 6080亚洲理论片在线观看| 在线三级av| 午夜在线视频免费观看| 7777kkkk成人观看| 日韩一区二区三区视频在线观看| 久久午夜电影网| av首页在线| 久久韩剧网电视剧| 亚洲午夜羞羞片| 99精品美女视频在线观看热舞| 欧美hdfree性xxxx| 亚洲三区在线观看| 日韩免费av在线| 日韩视频在线你懂得| 欧美激情一区二区三区蜜桃视频 | 日本美女高潮视频| 国产偷久久久精品专区| 视频一区视频二区国产精品| 精品福利樱桃av导航| 大美女一区二区三区| 99视频精品视频高清免费| 少妇高清精品毛片在线视频| 91手机在线视频| 亚洲最大在线视频| 色噜噜狠狠色综合中国| 99热精品国产| 伊人色综合一区二区三区影院视频| 91麻豆福利| 强伦女教师2:伦理在线观看| 国产精品日韩欧美大师| 在线播放日韩欧美| 色婷婷精品久久二区二区蜜臀av| 久久先锋影音av| 免费一级欧美片在线观看| 精品一区二区三| 国产高清精品二区| 色呦呦在线播放| 最新二区三区av| 久久久久久久久久网| 裸模一区二区三区免费| 国产精品影片在线观看| 伦伦影院午夜日韩欧美限制| 亚洲国产小视频| 欧美一区二区视频免费观看| 午夜精品在线视频一区| 亚洲视频狠狠干| 成人黄色av网址| 91精品国产66|