0x0 テスト環境 本社本番サーバーと支社バックアップサーバーはリモートデータバックアップが必要です。環境は以下の通りです。
0x1 本番サーバー環境構築 0x1.1 gccコンパイラとrsyncをインストールする
0x1.2 inotifyをサーバーにコピーして解凍する
0x1.3 インストールするinotifyディレクトリを入力してください inotify-tools-3.13 をインストールします ./configure 作る インストールする /usr/local/bin/inotifywait ##インストールが成功したかどうかを確認します 0x2 バックアップサーバ環境構築 0x2.1 xinetdとrsyncをインストールする
0x3 次のコンテンツは2つのサーバー間で同期されます ユーザー追加 -u 600 zytest パスワード zytest ジテスト su - zytest -c 'mkdir /home/zytest/files' ##同期ディレクトリを作成する 0x4 バックアップサーバーでrsyncdを構成する 0x4.1 /etc/xinetd.d/rsyncを編集し、以下の内容に変更します。 無効にする = はい ==> 無効にする = いいえ フラグ = IPv6 ==> フラグ = IPv4 server_args = --daemon ==> server_args = --daemon --config=/etc/rsyncd.conf 0x4.2 /etc/rsyncd.confを編集し、次のスクリプト情報を追加します。 uid = ルート gid = ルート chroot を使用する = いいえ 最大接続数 = 1000 厳密モード = はい ポート = 873 pid ファイル = /var/run/rsyncd.pid ロックファイル = /var/run/rsyncd.lock ログファイル = /var/log/rsyncd.log # ユーザー「zytest」の場合は以下、他のユーザーの場合は変更 [ザイテスト] パス = /home/zytest エラーを無視する 認証ユーザー =zytest シークレットファイル = /home/rsync-dst.ps 読み取り専用 = いいえ リスト = 偽 Ps: rsyncd設定ファイルはxinetd上にあるため、バックアップサーバーはxinetdをインストールします。 0x4.3 呼び出されたパスワードファイルにパスワードを書き込み、権限を付与する echo zytest:zytest >> /home/rsync-dst.ps chmod 600 /home/rsync-dst.ps 0x4.4 xinetd経由でrsyncを開始する /etc/rc.d/init.d/xinetd を再起動 0x5 プライマリサーバー上のinosyncスクリプトファイルを構成する 0x5.1 ** ##/root/inosync を編集し、スクリプト コードを追加します** #!/bin/sh #chkconfig: 3 78 10 #このファイルはコンパイル時から存在します [ ! -f /usr/local/bin/inotifywait ] の場合 それから echo "開始できません。ファイル inotifywait が存在しません!" 出口 フィ #このファイルは実行可能なシェルスクリプトです [ ! -f /usr/local/bin/inosync.so.1 ]の場合 それから echo "管理者に連絡してください。inosync.so.1 が存在しません!" 出口 フィ ケース「$1」 '始める') /usr/local/bin/inosync.so.1 & ;; '停止') pid=`ps -ef | grep -v grep | grep "inotifywait" | awk '{print $2}'` キル -9 $pid 2>&1 ;; '再起動') $0 ストップ 0ドルからスタート ;; エサック 0x5.2 スクリプトの権限を付与し、起動時に開始するように設定する chmod a+x /root/inosync cp /root/inosync /etc/rc.d/init.d 0x5.3 構成呼び出しメインスクリプトファイル /root/inosync.so.1 rhost=**バックアップサーバのIP** ユーザー=zytest src=/home/zytest/ファイル dst=zytest #dst は、dst サーバーのファイル /etc/rsyncd.conf 内の [zytest] に対応します。 ログ=/root/inosync.log /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M:%S' --format '%T %w%f %e' -e close_write,create,move,delete,attrib $src | ファイルの読み取り中 する エコー == rsync 開始 == >> $log rsync -avP --password-file=/home/rsync-src.ps --delete $src $user@$rhost::$dst >> $log 2>&1 エコー -- rsyncd -- >> $log 日付 >> $log echo "${files} が rsync されました " >> $log 2>&1 終わり PS: %T の後にスペースがあり、%f と %e の間にもスペースがあります 0x5.4 inosync.so.1 スクリプトに権限を与え、/usr/local/bin にコピーします。 chmod a+x /root/inosync.so.1 cp /root/inosync.so.1 /usr/local/bin 0x5.5 呼び出されたパスワードファイルにパスワードを書き込み、権限を付与する echo zytest >> /home/rsync-src.ps chmod 600 /home/rsync-src.ps 0x6 ターゲットサーバーはinosyncを自動的に開始するように設定し、inosyncサービスをオンにします chkconfig --level 3 inosync オン /etc/rc.d/init.d/inosync 開始 0x7 テスト終了 運用サーバーの /home/zytest/files ディレクトリにファイルとフォルダを作成し、バックアップ ストレージでもファイルとフォルダが同期されているかどうかを確認します。同期されている場合は、同期は成功しています。 プロセスはログを通じて確認できます 末尾 -f /root/inosync.log 要約する Linux で Rsync+Inotify を使用してローカルとリモートのデータをリアルタイムで同期する方法について説明したこの記事はこれで終わりです。rsync+inotify を使用してリモートのリアルタイム同期を実現する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Alibaba Cloud ESC に MYSQL8.0 をインストールするチュートリアル
目次まずwgetをインストールするヘルプマニュアルを見る1. wgetを使用して単一のファイルをダウ...
ダイアログをクロージャで使用し、右上隅の向こう側に閉じるボタンがあるダイアログを描画しました。ボタン...
カルーセル主なアイデアは次のとおりです。大きなコンテナには、コンテナの幅の整数倍の非常に長いテーブル...
<br />まず最初に、私はこのグループの中では完全な新人だということを述べなければなり...
導入:スライダー ドラッグ検証は現在、多くの場所で使用されています。週末に 1 つ作成しようと思い、...
フロントエンドのレイアウト プロセスでは、水平方向の中央揃えを実現するのは比較的簡単で、通常は ma...
1. シェルスクリプトcrontab.shを書く #!/bin/bash step=1 #ステップ間...
導入メタタグは、HTML言語のHEAD領域にある補助タグです。 meta は、ページの説明、キーワー...
現在、ほとんどのプロジェクトが Docker 上にデプロイされ始めていますが、デプロイのプロセスはま...
1. 簡単な紹介Vue.js を使用すると、一般的なテキストの書式設定に使用できる独自のフィルターを...
目次1. 解体のヒント2. デジタルセパレーター3. try...catch...finally が...
Web ページ制作では、input と img が同じ行に配置されることが多く、img タグが常に ...
ドキュメント オブジェクト モデル (DOM) は、プログラムがドキュメントのコンテンツ、構造、およ...
現象:イメージを実行します (例: ubuntu14.04)。 docker run -it --r...
水平線<hr /> タグを使用して、現在の位置に水平の分割線を描画します。例: XML/...