次の要件を仮定します:
2 つのサーバーを仮定します:
192.168.0.1 ソースサーバーにはディレクトリ /opt/test/
192.168.0.2 があります ターゲットサーバーにはディレクトリ /opt/bak/test/
目的実装の目的は、2 つのサーバーの特定のファイル ディレクトリでリアルタイム同期を維持することです
実装方法: rsync+inot の組み合わせを通してify-tools
まず、 2台のマシンへの信頼関係、具体的な方法 前回の記事で紹介しました
詳細を見る: linux信頼関係とパスワード不要のログインを追加
必要なインストール ソフトウェア:
2.6.32-358.6.1.el6.x86_64
ll /proc/sys/fs/inotify total 0 -rw-r--r-- 1 root root 0 Oct 18 12:18 max_queued_events -rw-r--r-- 1 root root 0 Oct 18 12:18 max_user_instances -rw-r--r-- 1 root root 0 Oct 18 12:18 max_user_watches
バージョンが要件を満たしていればインストールできます。 inotify-tools をインストールすると、関連するインストール ディレクトリに次の 2 つのファイルが生成されます:
ll /usr/local/bin/ total 88 -rwxr-xr-x 1 root root 44327 Oct 10 15:32 inotifywait -rwxr-xr-x 1 root root 41417 Oct 10 15:32 inotifywatch
注: inotify はソース サーバーにインストールする必要がありますが、ターゲット サーバーにインストールする必要はありません。
3. 関連スクリプト: ソースサーバー上に新しいスクリプトを作成します: inotify_bak.sh#!/bin/bash src=/opt/test/ /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,delete,create,attrib $src | while read file do /usr/bin/rsync -arzuq $src 192.168.0.1::www/ echo " ${file} was rsynced" >>/opt/soft/log/rsync.log 2>&1 done
chmod +x inotify_bak.sh
tail -f /opt/soft/log/rsync.log
/usr/local/bin/inotifywait: error while loading shared libraries: libinotifytools.so.0: cannot open shared object file: No such file or directory
ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib64/libinotifytools.so.0
以上がLinux で 2 つのサーバー間でリアルタイムのファイル同期を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。