ホームページ >運用・保守 >Linuxの運用と保守 >rsync+inotify リアルタイム同期のサンプル チュートリアルを共有する

rsync+inotify リアルタイム同期のサンプル チュートリアルを共有する

PHP中文网
PHP中文网オリジナル
2017-06-20 11:57:301466ブラウズ

1.rsync

従来のcptarのバックアップ方法と比較して、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. クライアント設定

インストール rsyncinotify

1. rsyncをインストールする() おいしいインストールするだけです)

2パスワード認証ファイルを作成します

echo “123456” >/etc/rsync.password パスワードのみ必要です

権限を設定します 600 chmod 600 /etc/rsync.password

3. inotifyをインストールします:

cd /home/cai/tools/

wget

54 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。