彼らは、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