rsync inotify 實現實時同步

2022-04-11 05:22:37 字數 2225 閱讀 5065

inotify:這個可以監控檔案系統中的新增,修改,刪除,移動等事件

inotify的特性需要linux核心2.6.13以上的支援

[root@test1 inotify-tools-3.13]# uname -r

2.6.32-71

.el6.i686 #支援 還需要看看是否安裝了inotify

[root@test1 inotify-tools-3.13]# ll /proc/sys/fs/inotify/total

0#這個裡面的東西是inotify的介面用於限制記憶體大小

-rw-r--r-- 1 root root 0 aug 18

19:57

max_queued_events #表示呼叫init時分配到instance中排隊的event的最大數目,超出就會被丟棄

-rw-r--r-- 1 root root 0 aug 18

19:57 max_user_instances #表示乙個real id

user 可建立instance的最大數目

-rw-r--r-- 1 root root 0 aug 18

19:57 max_user_watches #表示inotify可監控的最大目錄檔案上限,如果目錄檔案過多可以把這個值調大點

光有inotify還不夠,還要安裝inotify-tools

19:50 /usr/local/bin/inotifywait #用於等待檔案或者檔案集上的特定事件

-rwxr-xr-x. 1 root root 33971 aug 18

19:50 /usr/local/bin/inotifywatch #收集監控的檔案系統統計資料,包括inotify事件發生多少次

/usr/local/bin/inotifywait  

-m:始終保持事件監控狀態

-r:遞迴查詢目錄

-q:列印監控事件

-e:指定要監控的事件,常見事件有,modify,delete,create和attrib

這個還可以一次同步到多台伺服器,用多台rsync服務端作為客戶端,在另外一台伺服器上監控乙個目錄,當目錄裡面有檔案發生狀態和屬性改變事件,就會自動觸發同步到多台伺服器上

rsync_inotify.sh

#!/bin/bash

#需要同步的伺服器位址

dst_host=192.168.1.20

#源檔案目錄

src_dir=/webserver/#需要同步的遠端伺服器上的模組名

dst_module=webserver

#遠端伺服器上的模組認證使用者

module_username=sheng

#rsync命令的絕對路徑

rsync_pwd=`whereis rsync | awk''

`/usr/local/bin/inotifywait -mrq --timefmt '

%d/%m/%y %h:%m'\

--format '

%t %w%f %e'\

-e modify,delete,create,attrib $src_dir \

| while read file

do$ -vzrtopg --delete --password-file=/etc/rsyncd.pass $src_dir $module_username@$dst_host::$dst_module

echo

"$ was rsyncd!

" >> /var/log/rsync_inotify.log

done

rsync inotify實現實時同步

服務端 一 首先安裝rsync,接著編輯配置檔案,若沒有,自己手動建立也可 rsync xinetd rsync最好是3.0以上版本,演算法更優,速度更快.xinetd 監控管理rsync服務 etc rsyncd.conf uid www gid www use chroot no max con...

rsync inotify實現實時同步

一 rsync基本操作 rsync常用選項 n 測試同步過程,不做實際修改 delete 刪除目標資料夾內多餘的文件 a 歸檔模式,相當於 rlptgod v 顯示詳細操作資訊 z 傳輸過程中啟用壓縮 解壓 用法 rsync 選項 本地目錄1 本地目錄2 rsync 選項 本地目錄1 本地目錄2 r...

rsync inotify實現實時單向同步

源伺服器 10.13.114.16 目標伺服器 10.13.114.17 目的 實現源伺服器10.13.114.16 home admin www 資料夾檔案實時同步到目標伺服器10.13.114.17 的 home admin www目錄下 第一步 源伺服器端安裝rsync wget o etc ...