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 をインストールするチュートリアル
以前は、フロートはレイアウトによく使用されていましたが、フローティングレイアウトを使用すると親要素の...
Vue $http get および post リクエストのクロスドメイン問題まずconfig/ind...
カスケードとカスケードレベルHTML 要素は 3 次元の概念です。水平方向と垂直方向に加えて、「Z ...
シェルを起動する頻度は非常に低いですが。 。 。しかし、書くたびに、多くの jar ファイル パスを...
1 はじめにバイナリ ログは、データを持つ、またはデータを変更する可能性がある SQL ステートメン...
GROUP BY ステートメントは、Aggregate 関数と組み合わせて使用され、1 つ以上の...
次のコードは、Chrome による Cookie の変更の監視を導入しています。コードは次のとおりで...
この記事では、次のような効果を持つ JS ページング効果の例を紹介します。クールだと思いませんか? ...
Linux は現在最も広く使用されているサーバー オペレーティング システムです。Unix をベー...
問題を見つける最近、プログラムのストレージを Mongodb に移行したところ、Guid 型が書き込...
ネットで変更方法をいろいろ調べたのですが、うまくいきませんでした。後で大物から見て削除しました。フォ...
1. オンラインインストール現在、Linux x86アーキテクチャのオンラインインストールのみを試し...
ページ: ベース: <テンプレート> <div class="タブコンテ...
Docker入門Docker は、アプリケーションをより速く配信するのに役立つオープンソースのコンテ...
CSS における位置指定の概要position属性は英語で位置を意味し、 CSSでの主な機能は要素...