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 をインストールするチュートリアル
Windows 10 プラットフォームでの MySQL のインストール、構成、起動、ログイン、環境...
要件: ページに画像を表示する必要がありますが、さまざまな理由により、画像はサーバー 2 にあります...
カメラを開くと通常はスキャンボックスが表示されますが、静的なQRコードではフォーカスを合わせたりスキ...
設定手順Linux システム: CentOS-7.0 MySQL バージョン: 5.7.21 Lin...
目次0x01 ドライバーモジュールのロードに失敗しました0x02 ソリューション要約する0x01 ド...
SSDストレージを有効にしたMySQLインスタンスの詳細な説明特に OS と MySQL が同じディ...
任意のウェブページを開きます。例: http://www.baidu.com/ ブラウザのタブのヘッ...
環境: [root@centos7 ~]# uname -r 3.10.0-514.el7.x86_...
私は最近新しい会社に入社したのですが、データベース設計にいくつか小さな問題があることに気付きました。...
目次コンテナ階層サーブレットの検索を要求するプロセス仕組みTomcat のコンテナは Servlet...
中国語ドキュメント: https://router.vuejs.org/zh/ Vue Router...
この記事では、カスタムツリーコンポーネントを再帰的に実装するVueの具体的なコードを参考までに共有し...
[LeetCode] 196.重複したメールを削除するSQL クエリを記述して、Person とい...
目次シナリオタスクアイデア分析するコンセプトと選択ちょっとしたテスト環境説明予防実践テスト引用シナリ...
この記事では、最も単純なビデオ連射機能をシミュレートするデモを作成します。アイデア:再生する動画と同...