ホームページ >運用・保守 >Linuxの運用と保守 >rsync+inotify リアルタイム同期のサンプル チュートリアルを共有する
1.rsync
従来のcp、tarのバックアップ方法と比較して、rsyncには、高いセキュリティ、高速バックアップ、rsyncによる増分バックアップのサポートという利点があります。ファイル サーバー データのリモート サーバーへの定期的なバックアップ、ローカル ディスクの定期的なデータ ミラーリングなど、高いリアルタイム パフォーマンスを必要としないデータ バックアップのニーズを解決できます。
アプリケーション システムの規模が拡大し続けるにつれて、データのセキュリティと信頼性に対する要件が高まり、ハイエンド ビジネスでは rsync の多くの欠点が徐々に明らかになってきました。まず、rsyncがリアルタイムで同期している場合、比較と差分送信のためにすべてのファイルをスキャンする必要があります。ファイルの数が数百万、さらには数千万に達した場合、すべてのファイルをスキャンするのは非常に時間がかかり、ファイルのごく一部のみが変更されるため、非常に非効率な方法になります。第二に、rsyncはリアルタイムでデータを監視および同期することができません。 linux デーモンを介して開始同期を実行できますが、2 つの開始アクションの間に時間差が必要になるため、サーバーとクライアントの間で不整合が発生し、アプリケーション障害が発生した場合にデータを完全に回復することができなくなります。 。上記の理由から、rsync+inotifyが登場しました!
2.inotify(監視)
inotifyは、強力できめの細かい非同期ファイル システム イベント監視メカニズムです。 inotify を通じて、ファイル システム内の追加、削除、変更、移動などのさまざまな微妙なイベントを監視できます。このカーネル インターフェイスを使用すると、サードパーティ ソフトウェアはファイル システム内のさまざまな変更を監視でき、inotify を実行できます。 - tools はサードパーティ ソフトウェアです。
1.サーバー設定 (rsyncのインストールのみが必要)
/tmp/に共有:
1.仮想を追加user useradd rsync -s / sbin/nologin
chown -R rsync.rsync /tmp/ 2.設定rsyncd.conf設定ファイル
vim rsyncd.conf#rsync_config_______________start
#rsyncd.conf start## uid = rsync (ユーザー) gid = rsync (ユーザー) use chroot = no (セキュリティの問題を防ぐため) 最大接続数 = 200 (バックアップ サーバーに接続できるクライアントの数) timeout = 300 (タイムアウト、何もせずに切断するまでにかかる時間) pid file = /var/run/rsyncd.pid (プロセス番号、このファイルにプロセス番号を入れてください) lock file = /var/run/rsync.lock (「ロック」の概念、トイレのドアをロックする概念に相当) log file = /var/log/rsyncd.log (エラー、ログ ファイルを表示できます) [tmp] (モジュール) path = /tmp/ (パス) エラーを無視する (エラーを無視する) 読み取り専用 = false (読み取り専用は false、読み取り可能および書き込み可能を意味します) list = false (許可されていないリスト) hosts allowed = 10.0.0.0/24 (許可されたホスト)
hostsdeny = 0.0.0.0/32 (拒否されたホスト) auth users = rsync_backup (仮想ユーザーをサポート) secrets file = /etc/rsync.password (ユーザーの対応するパスワード) ファイル) #rsync_config_______________end 3. パスワードファイルを作成します echo “rsync_backup:123456” >/etc/rsync.password
すべてのパスワードファイル600権限 chmod 600 /etc/ rsync.password
4.rsync --daemon デーモンモード起動
5. rsync --daemon を /etc/rc.local
に追加します
echo “/usr/bin/rsync --daemom” >>/etc/rc.local
2. クライアント設定
インストール rsync と inotify
1. rsyncをインストールする() おいしいインストールするだけです)
2パスワード認証ファイルを作成します
echo “123456” >/etc/rsync.password パスワードのみ必要です
権限を設定します 600 chmod 600 /etc/rsync.password
3. inotifyをインストールします:
cd /home/cai/tools/ wget54 tar inotify-tools-3.14.tar.gz 55 ls 56 cd inotify-tools-3.14 57 ./configure --prefix=/usr/local/inotify-tools-3.14 58 make && make install 59 おいしいinstall -y gcc 60 ./configure --prefix=/usr/local/inotify-tools-3.14 61 make && make install 62 cd /usr/local/inotify-tools- 3.14/ 63 ls 64 ln -s /usr/local/inotify-tools-3.14/ /usr/local/inotify
4. スクリプトはすべてです。配置されました /server/scriptsダウンロード
vim /server/scripts/rsync.sh #!/bin/sh host=192.168.76.129 s rc=/tmp/ des=tmp user=rsync_backup /usr/local/inotify/bin/inotifywait -mrq --timefmt '%d%m%y %H:%M' --format ' %T %w%f%e' -e 変更、削除、作成、属性 $src | ファイル読み取り中 do /usr/bin/rsync -avz --delete $src $user@$host::$des --password-file=/etc/rsync.password echo "${files} が rsync されました" >>/var/log/rsyncd.log 2>&1完了 終了 ~
と764権限を与えるテストスクリプト: sh /server/scripts/rsync.sh
スクリプトを実行する: sh /server/scripts/rsync.sh &
起動項目にrsync.sh
スクリプトを追加します: echo“/tmp/rsync.sh” >/etc/rc .local
以上がrsync+inotify リアルタイム同期のサンプル チュートリアルを共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。