リアルタイム同期のrsync + inotifyを百万ファイル

彼らは、2つのノードに搭載されているのrsync

yumをrsyncのインストール-y

inotifyをリアルタイム監視ファイルの変更をインストールするには、ソース・サーバ107

wgetのhttp://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz 
タールzxfのinotify-toolsを-3.14.tar.gzの
CDのinotify-toolsを-3.14 
は./configure --prefix = / usr / local / inotifyを
-j2メイク
make installを
LN -sは/ usr / local / inotifyを/ binに/ inotifywaitは/ usr / local /ビン/

ソースサーバパスワード認証ファイル

猫は/etc/rsync.pwd 
123456

600へのファイルのパーミッションを変更します。

chmodの600 /etc/rsync.pwd

ターゲットサーバパスワード認証ファイル、webrsyncをユーザーが作成し、事前にパスワードを設定する必要があります

猫/etc/rsync.pwd 
webrsyncを:123456

600へのファイルのパーミッションを変更します。

chmodの600 /etc/rsync.pwd

106ターゲットサーバ構成ファイル

/etc/rsyncd.conf猫
#の/ etc / RSYNCD:rsyncのデーモンモード用の設定ファイル

より多くのオプションのために#を参照してくださいrsyncd.conf manページを。

#設定例:

#UID =誰も
#GID =誰も
#利用のchroot = YES 
#最大接続数= 4 
#PIDファイル= /var/run/rsyncd.pid 
位=失われた+を除外した/ 
#転送ログ= YES 
#タイムアウト= 900 
#無視nonreadable =はい
#いけない湿布= * .gzを* .tgzの* .zipファイル* .Z * .Z * .rpmの* .debという* .bz2 

#[FTP] パス= /ホーム/ ftpの
#コメント= ftpの輸出エリア


UID = 0 
GID = 0 
の使用にchroot =いいえ
最大接続数= 0#0表示没有限制 
PIDファイル= /var/run/rsyncd.pid 
ロックファイル= /var/run/rsyncd.lock
ファイル/var/log/rsyncd.log =ログ
形式T =%M %%% A%B Fログ
#=見出さ除外ロスト+ / 
#=はい転送ロギング・
タイムアウト時間が= 600#600は、好ましくは配置された
逆引きNO = 
位はい= nonreadable無視
#= *圧縮.gzを.tgzの* * * .Z * .Z .zipファイルの.rpm * * * .debという.bz2いけない
 
[ayd01]#モジュールを同期させるための
パス= /データ/ 
リード= falseにのみ
無視しますIOエラー#は多少の誤差が無視
ホストを許可= 10.11.1.0/24 
AUTH = webrsyncをユーザー
の秘密ファイル= /etc/rsync.pwd

rsync.shソースサーバ107のスクリプトの作成

SRC = /データ/ 
DES = TEST01 
rsync_passwd_file =の/ etc / rsync.pwd 
IP1 = 10.11.1.106 
ユーザー= webrsyncを
CDの$ {SRC} 
は/ usr / local /ビン/ inotifywait -mrq --format '%のXe%W%F' -e、ATTRIB、close_write、移動、作成、削除、変更./ | 読み込みファイルしばらく
DO 
        INO_EVENT = $(エコー$ファイル| awkの'{$ 1印刷}')
        | INO_FILE = $(awkの'{$ 2印刷}'エコー$ファイル)
        「エコー------------ ------------------- $(日)--------------------------- ---------」
        $ファイルをエコー
        であれば[[$ INO_EVENT =〜 'CREATE']] || [[$ INO_EVENT =〜 'MODIFY']] || [[$ INO_EVENT =〜 'CLOSE_WRITE']] || [[$ INO_EVENT =〜 'MOVED_TO']]#判断事件类型 
        その後、
                エコー'作成または変更又はCLOSE_WRITE又はMOVED_TO' 
                のrsync -avzcR --passwordファイル= $ {rsync_passwd_file} $(DIRNAME $ {INO_FILE})$ {ユーザ} @ $ {IP1} :: $ {デ} 
        Fiの
        場合は[ $ INO_EVENT =〜 'DELETE']] || [[$ INO_EVENT =〜 'MOVED_FROM']] 
        次に、
                エコー'DELETEまたはMOVED_FROM' 
                のrsync -avzR --delete --passwordファイル= $ {rsync_passwd_file} $(DIRNAME $ {INO_FILE})$ {ユーザ} @ $ {IP1 } :: $ {}デ
        Fiが
        あれば[[$ INO_EVENT =〜 'ATTRIB']]は、
        その後、
                'ATTRIB'をエコー
                [場合!-d "$ INO_FILE"] 
                その後、 
                        rsyncを-avzcR --passwordファイル= $ {rsync_passwd_file} $(DIRNAME $ {INO_FILE})$ {ユーザ} @ $ {IP1 } :: $ {}デ
                Fiを
        Fiあり
行って

 なおとして755または所有者に、ディレクトリのパーミッションの同期webrsyncを

参考:https://blog.csdn.net/yanzhenjingfan/article/details/88667263

おすすめ

転載: www.cnblogs.com/caidingyu/p/11887085.html