rsyncとinotfiyの組み合わせでリアルタイムバックアップ問題を実現
1. はじめに
rsyncの紹介です。
rsyncは、Linuxシステム用のデータイメージバックアップツールです。高速インクリメンタルバックアップツールRemote Syncを使用して、リモート同期、ローカルレプリケーションのサポート、または他のSSHやrsyncホストとの同期を行います。
イノティファイ紹介
Inotifyは、強力な非同期ファイルシステムイベントモニタリング機構です。Inotifyは、ファイルシステムの追加、削除、変更、移動、その他の微妙なイベントを監視することができ、このカーネルインターフェイスにより、サードパーティソフトウェアはファイルシステム上のファイルへの変更を監視することができます
2. 実験環境です。
<テーブル IPアドレス 役割 192.168.153.180 バックアップソース同期クライアント+inotify 192.168.153.181 バックアップ側のrsyncサーバー
2台ともファイアウォールとselinuxはオフにしています。
ファイアウォールをオフにする
systemctl stop firewalld
selinux をシャットダウンします。
setenforce 0
3. バックアップ側のホスト(ホスト181)の設定
3.1 rsyncツールのインストール
yum -y install rsync
3.2 rsync設定ファイルを修正する。
vim /etc/rsyncd.conf
以下のように修正しました。(!) (コピー後のコメントを削除してから使用しないと、書式に問題があります。
uid=root
gid=root
use chroot = no
max connections = 10
strict modes = yes
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
[rsync]
path = /opt # backup path
comment = rsync
ignore errors #Skip errors
read only = no #read
write only = no #write
hosts allow = 192.168.153.180 #Backup source ip
list = false
auth users = rsync_user # users
3.3 パスワードファイルの作成と権限変更 ファイルを作成する
echo "rsync_user:123" > /etc/rsync.password
パーミッションの変更
chmod 600 /etc/rsync.password
3.4 rsyncの起動とポート認証の表示
開始
rsync --daemon
を確認する
netstat -ntlp|grep 873
tcp 0 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 1583/rsync
tcp6 0 0 :::873 :::* LISTEN 1583/rsync
4. バックアップ元(ホスト180)の設定
4.1 epelソースと必要なツールのインストール
まず、epelのソースをインストールします。
yum -y install epel-release
必要なツールを再度インストールする
yum -y install inotify-tools rsync
4.2 rsyncの同期パスワードを設定するだけで、ユーザー名の再設定は不要 ファイルを作成する
echo "123" > /etc/rsync.password
パーミッションの変更
chmod 600 /etc/rsync.password
4.3 inotify監視スクリプトを以下のように記述する。
vim inotify.sh
#! /bin/bash
ip=192.168.153.181 #backup-side ip
src=/opt/rsync_src #data directory
dst=rsync
user=rsync_user # user
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e modify,delete,create,attrib ${src} | while read file
do
rsync -vzrtopg --delete --progress $src $user@$ip::$dst --password-file=/etc/rsync.password > /dev/null && echo "$src was rsyncd"
done
3.4 ソースディレクトリの作成
mkdir /opt/rsync_src
3.5 スクリプト検出の実行
sh inotify.sh
3.6 新しいウィンドウでソースディレクトリにファイルを作成する
cd /opt/rsync_src
echo 111 > 1.txt
echo 222 > 2.txt
3.7 バックアップ側で、新しく作成した2つのファイルが同期されたことを確認します。
ls /opt/rsync_src/
1.txt 2.txt
3.8 バックアップ元側の1.txtファイルの削除
cd /opt/rsync_src
rm -f 1.txt
バックアップ側で同期され、削除されたことを確認する
ls /opt/rsync_src/
2.txt
リアルタイムバックアップを実現するためにinotfiyと組み合わせたrsyncに関するこの記事は、より関連するリアルタイムバックアップを実現するためにinotfiyと組み合わせたrsyncの内容は、スクリプトハウスの過去の記事を検索してくださいまたは次の関連記事を閲覧を継続、私はあなたが将来的にもっとスクリプトハウスをサポートして願っています!この記事は紹介され、リアルタイムバックアップを実現するためにinotfiyと組み合わせた。
関連
-
LinuxでPingを無効にする、または許可する設定方法
-
Linuxでファイルパーミッションを与えるには?Linuxでファイルに実行可能なパーミッションを追加するためのヒント
-
Manjaro linuxでマウスの速度を設定する方法は?Manjaroのマウスのカーソル速度を設定する方法に関するヒント
-
Linuxのデスクトップの背景を画像で引き伸ばし表示にする方法とは?
-
Centos7のインストールと展開無料のconfluence wikiの(知識ベース)詳細な操作手順
-
Linux Mintでフェード効果をオンにする方法は?
-
deepin20のソフトをアンインストールする方法を教えてください。deepinのアプリケーションをアンインストールする2つの方法
-
deepin20のデフォルトブラウザを設定するには?deepinにデフォルトブラウザを追加するためのヒント
-
deepin20のデスクトップアイコンのスタイルを変更する方法は?deepinのアイコンテーマを変更するためのヒント
-
TclError: 表示名がなく、$DISPLAY環境変数もない。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ゼロからLinuxのisoイメージを作る方法(グラフィックチュートリアル)
-
centos7 インストール クリックハウスとセット ユーザー名 パスワード ケース 詳細
-
deepin20ターミナルでサーバーをリモート管理する方法
-
Linux Mintのシステムバージョン情報はどこにありますか? Linux Mint のシステム情報を見るためのヒント
-
Kali Linuxのマウスを左利き用に設定する方法は?Linuxマウス左利き操作選択方法
-
deepin20を使って、ドローイングボードで画像を開くには?deepinのお絵かき掲示板で画像を開く2つの方法
-
ディープインシステムの画面解像度を設定する方法は?ディープインシステムの解像度を設定する方法
-
Deepin20システムのフォントを設定するには?Deepin端末のフォントサイズを設定する方法
-
GCCのバージョンによる浮動小数点演算の例外発生
-
floor'への未定義の参照/`&'への未定義の参照