リアルタイムミラーリングツール導入(Lsync+Rsync)(CentOS7)

提供:あわ自由帳

メインページ > CentOS 7 で自宅サーバー構築  > リアルタイムミラーリングツール導入(Lsync+Rsync)(CentOS7)

Rsync + Lsync でファイル/ディレクトリに変更があった場合にリアルタイムに同期するよう設定します。

+----------------------+            |             +-----------------------+
|   host3.sudachi.jp   |192.168.1.3 | 192.168.1.41|   host4.sudachi.jp    |
|                      +------------+-------------+                       |
|     /backup/*        |   ------------------>    |     /home/backup/*    |
+----------------------+          copy            +-----------------------+

コピー先ホストの設定

インストール

[root@host4 ~]# yum -y install rsync

設定

[root@host4 ~]# mkdir /home/backup 

[root@host4 ~]# vi /etc/rsyncd.conf

# 任意の名前
[backup]
# コピー先対象ディレクトリ
path = /home/backup
# 接続を許可するホスト(コピー元ホストを指定)
hosts allow = 192.168.1.3
hosts deny = *
list = true
uid = root
gid = root
read only = false

起動

[root@host4 ~]# systemctl start rsyncd

[root@host4 ~]# systemctl enable rsyncd

[root@host4 ~]# systemctl status rsyncd                                                                                        
 rsyncd.service - fast remote file copy program daemon
   Loaded: loaded (/usr/lib/systemd/system/rsyncd.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2016-01-10 16:02:00 JST; 1h 3min ago
 Main PID: 3021 (rsync)
   CGroup: /system.slice/rsyncd.service
           └─3021 /usr/bin/rsync --daemon --no-detach

コピー元ホストの設定

ファイル/ディレクトリに変更があった場合にリアルタイムに同期するよう設定します。

EPEL からインストール

[root@host3 ~]# yum --enablerepo=epel -y install lsyncd

ホストの設定

[root@host3 ~]# vi /etc/lsyncd.conf

-- sync{default.rsyncssh, source="/var/www/html", host="localhost", targetdir="// tmp/htmlcopy/"} ← コメントにする
# 以下、追記
settings{
    statusFile = "/tmp/lsyncd.stat",
    statusInterval = 1,
}
sync{
    default.rsync,
    source="/backup/", ← ミラー元ディレクトリ指定
    target="192.168.1.4::backup", ← ミラー先のホスト名/IPアドレス:(rsyncd.confで設定した名前)
    excludeFrom="/etc/rsync_exclude.lst", ← ミラー除外リスト
}

コピー除外リスト

コピー元の対象ディレクトリ内から、コピーを除外するファイル/ディレクトリを記述(相対パス)

[root@host3 ~]# vi /etc/rsync_exclude.lst
- mysql

起動

[root@host3 ~]# systemctl start lsyncd 

[root@host3 ~]# systemctl enable lsyncd

[root@host3 ~]# systemctl status lsyncd
 lsyncd.service - Live Syncing (Mirror) Daemon
   Loaded: loaded (/usr/lib/systemd/system/lsyncd.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2016-01-10 16:11:05 JST; 35min ago
 Main PID: 17163 (sh)
   CGroup: /system.slice/lsyncd.service
           ├─17163 /usr/bin/sh -c eval `/usr/bin/lsyncd -nodaemon $LSYNCD_OPTIONS /etc/lsyncd.conf`
           ├─17164 /usr/bin/sh -c eval `/usr/bin/lsyncd -nodaemon $LSYNCD_OPTIONS /etc/lsyncd.conf`
           └─17165 /usr/bin/lsyncd -nodaemon /etc/lsyncd.conf