1. ホーム
  2. オペレーティングシステム
  3. リナックス

rsyncとinotfiyの組み合わせでリアルタイムバックアップ問題を実現

2022-01-14 02:47:56

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と組み合わせた。