Ubuntu 16.04
Sponsored Link

Rsync : ファイル/ディレクトリの同期
2016/06/19
 
Rsync を利用して、あるホスト内のファイル/ディレクトリを別ホストへコピーします。 Rsync の基本的な使い方はリンク先の通りで、ローカル to ローカルでコピーするのであれば、単にコマンドを投入するのみですが、 対象ホストのいずれかがリモートになると認証が発生するため、定期的なファイル同期を自動化する場合は以下のように前もって同期設定をしておくとよいでしょう。
例として、dlp.srv.world の /root/work 配下のファイル/ディレクトリを、www.srv.world の /home/backup 配下にコピーするように設定します。

+----------------------+          |          +----------------------+
|     dlp.srv.world    |10.0.0.30 | 10.0.0.31|     www.srv.world    |
|                      +----------+----------+                      |
|     /root/work/*     |   ------------->    |     /home/backup/*   |
+----------------------+        copy         +----------------------+

[1] コピー元ホストの設定です。
root@dlp:~#
apt-get -y install rsync
root@dlp:~#
vi /etc/rsync_exclude.lst
# コピー元の対象ディレクトリ内から、コピーを除外するファイル/ディレクトリを記述(相対パス)

test
test.txt

[2] コピー先ホストの設定です。
root@www:~#
apt-get -y install rsync
root@www:~#
vi /etc/default/rsync
# 8行目:変更

RSYNC_ENABLE=
true
root@www:~#
vi /etc/rsyncd.conf
# 新規作成

# 任意の名前

[backup]
# コピー先対象ディレクトリ

path = /home/backup
# 接続を許可するホスト(コピー元ホストを指定)

hosts allow = 10.0.0.30
hosts deny = *
list = true
uid = root
gid = root
read only = false
root@www:~#
mkdir /home/backup

root@www:~#
systemctl start rsync

[3] 以上の設定完了後、以下のようにしてコピー元ホスト上からコピー先ホストへ同期を行います。
root@dlp:~#
rsync -avz --delete --exclude-from=/etc/rsync_exclude.lst /root/work/ www.srv.world::backup
# 定期的に実行する場合は Cron に登録

root@dlp:~#
# 毎日午前2時に同期実行

00 02 * * * rsync -avz --delete --exclude-from=/etc/rsync_exclude.lst /root/work/ www.srv.world::backup
 
Tweet