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 をインストールするチュートリアル
隠れる前に:隠れた後: CS: ...コードをコピーコードは次のとおりです。オーバーフロー:非表示;...
1. ビジネスシナリオ最近はファイルのアップロードやダウンロードに関する開発をしています。ダウンロー...
1. 使用法: (1)EXISTSの使用 ucsc_project_batch a から、存在する場...
より良いスクロールの原則親コンテナーであるため、ラッパーの高さはコンテンツのサイズに応じて増加します...
システム環境: Win10 64ビットMySQL バージョン: mysql-5.7.18-winX6...
最近、docker を学習していたときに、docker コンテナ内のネットワーク状態を照会するために...
序文始める前に、ファイル属性とファイル属性を変更する方法について簡単に理解しておく必要があります。 ...
1. Linux で Selenium を使用する1. Chromeをインストールする次のコマンドを...
構文フォーマット: row_number() over(partition by grouping ...
vue+el-upload 複数ファイルの動的アップロード、参考までに具体的な内容は以下のとおりです...
MySQLのマスタースレーブ構成と原理、参考までに具体的な内容は以下のとおりです。 1. 環境の選択...
設定例 アップストリームバックエンド{ サーバー backend1.example.com 重み=5...
目次プロジェクトの背景始めるvue-cliでプロジェクトを作成するモバイル適応についてnormali...
mysql のデフォルトのストレージ ディレクトリは/var/lib/mysql/です。以下は、デフ...
インターネット上のインストール情報は不均一で、落とし穴だらけです。インストールにはかなりの労力がかか...