rsyncの概要:
rsyncには、ローカルホストとリモートホスト間のデータの高速レプリケーション、同期ミラーリング、およびリモートバックアップの機能があります。
inotfiyの紹介:
Inotifyは、強力な非同期ファイルシステムイベント監視メカニズムです。Inotifyは、ファイルシステム内の追加、削除、変更、移動などのさまざまなマイナーイベントを監視できます。このカーネルインターフェイスを使用して、サードパーティソフトウェアはファイルシステム内のファイルを監視できます。さまざまな変更
1.環境を準備します
2つのcentos7仮想マシン
192.168.27.136 A(バックアップソース)
192.168.27.137 B(バックアップ側)
ファイアウォールsetenforceをオフにします
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
2. Bステーション(バックアップ側)操作
1.rsyncをインストールして構成します
[root@localhost ~]# yum -y install rsync
[root@localhost ~]# 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
[mysqldata]
path = /data/mysqldata #备份路径
comment = mysql data
ignore errors #跳过错误
read only = no #读
write only = no #写
hosts allow = 192.168.27.136 #备份源ip
list = false
auth users = rsync_user #用户
secrets file = /etc/rsync.password #密码路径
2.rsyncユーザー名とパスワードテキストを/etc/rsync.password権限として確立します
[root@localhost ~]# echo "rsync_user:123" > /etc/rsync.password
[root@localhost ~]# chmod 600 /etc/rsync.password
3.バックアップディレクトリを作成します
[root@localhost ~]# mkdir -p /data/mysqldata
4. rsyncを起動し、ポートを確認します
[root@localhost ~]# rsync --daemon
[root@localhost ~]# netstat -nlput |grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 13338/rsync
3.ステーションA(バックアップソース)の操作
1. rsyncinotfiyをインストールします
先安装epel-release源
[root@localhost ~]# yum -y install epel-release
[root@localhost ~]# yum -y install inotify-tools rsync
2.クライアントは、ユーザー名をリセットせずに、rsync同期パスワードを設定するだけで済みます。
[root@localhost ~]# echo "123" > /etc/rsync.password
[root@localhost ~]# chmod 600 /etc/rsync.password
3.inotfiy監視スクリプトを編集します
[root@localhost ~]# vim inotify.sh
#!/bin/bash
ip=192.168.27.137 #备份源ip
src=/data/mysqldata_src/ #数据目录
dst=mysqldata
user=rsync_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
4.ディレクトリを作成し、スクリプト検出を実行します
执行前检查下目录是否存在,不存在记得创建
mkdir -p /data/mysqldata_src
[root@localhost ~]# sh inotify.sh
5.セッションを開き、ファイルテストを作成し、ステータスを確認します
[root@localhost ~]# cd /data/mysqldata_src/
[root@localhost mysqldata_src]# touch 666
[root@localhost mysqldata_src]#
[root@localhost ~]# sh inotify.sh
/data/mysqldata_src/ was rsyncd
/data/mysqldata_src/ was rsyncd
Bで見る(バックアップ側)
[root@localhost ~]# cd /data/mysqldata/
[root@localhost mysqldata]# ls
a