mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

CentOS 7.0 - rsync でファイル・ディレクトリ同期(同期先として)!

[ サーバ構築 ] [ CentOS, Linux, rsync ]

こんばんは。

「CentOS 7.0 - rsync でファイル・ディレクトリ同期(同期先として)」についての記録です。

(旧バージョンでの作業記録を更新しました。興味がなければスルーしてください)

0. 前提条件

  • CentOS 7.0-1406(x86_64) を NetInstall で最小限インストールしている。
  • サーバ用途なので、作業は基本的に全て一般ユーザから root になって行う。
  • クライアント側は Linux Mint 17 を想定。
  • ローカルマシン(Linux Mint 17)からサーバマシン(CentOS 7.0)へ同期することを想定。
  • サーバ側のバックアップ用ディレクトリは “/home/backup/rsync/” とする。
  • 同期元(クライアントマシン)の IP アドレスは 192.168.11.11 を想定。
  • 同期先(サーバマシン)の IP アドレスは 192.168.11.102 を想定。
  • クライアント側から同期要求があった場合にのみ rsync を起動させるために、 xined を使用する。
  • 以下の記事内では、サーバ側の設定とクライアント側の設定を記述しているので混同しないこと。

1. 同期先(CentOS)側

1-1. 【サーバ側】rsync, xinetd インストール

デフォルトでは rsync, xinetd はインストールされているが、未インストールならインストールする。

1
# yum -y install rsync xinetd

1-2. 【サーバ側】xinetd 設定ファイル編集

以下のように編集する。ファイルがなければ作成する。(最近はデフォルトでは無いファイルなので作成しなければならない)

/etc/xinetd.d/rsync
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
#       allows crc checksumming etc.
service rsync
{
        disable         = no   # <= 変更
        flags           = IPv6
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}

1-3. 【サーバ側】xinetd 再起動

再起動する(未起動なら起動する)。

1
# systemctl restart xinetd

1-4. 【サーバ側】xinetd 自動起動設定

デフォルトで自動起動するようになっているはずだが、そうでなければ自動起動するよう設定する。

1
2
3
# systemctl enable xinetd
# systemctl list-unit-files -t service | grep xinetd
xinetd.service                              enabled  # <= enabled であることを確認

1-5. 【サーバ側】同期先ディレクトリ作成

1
# mkdir /home/backup/rsync

1-6. 【サーバ側】rsync 設定ファイル編集

/etc/rsyncd.conf
1
2
3
4
5
6
7
8
[masaru]                       # <= この同期処理に対する名前を適当に
path = /home/backup/rsync    # <= 同期先
hosts allow = 192.168.11.11  # <= 同期元許可
hosts deny = *               # <= 許可同期元以外拒否
list = true                  # <= クライアントへのモジュールリスト表示を許可
uid = root                   # <= ユーザID(root 固定)
gid = root                   # <= グループID(root 固定)
read only = false            # <= 書き込み可

1-7. ファイアウォール設定

ポート TCP:873 を開放する。

1
2
3
4
5
6
# firewall-cmd --add-port=873/tcp
success
# firewall-cmd --add-port=873/tcp --permanent
success
# firewall-cmd --list-ports
110/tcp 465/tcp 873/tcp 4000-4005/tcp

2. 同期元(Linux Mint)側

2-1. 【クライアント側】rsync インストール

1
# aptitude -y install rsync

2-2. 【クライアント側】同期除外ファイル指定

同期元の対象ディレクトリ内から同期を除外するファイル/ディレクトリのリスト(ファイル名は任意)を作成する。
除外するファイル・ディレクトリがなければこの作業は不要。(ファイル名は “/etc/rsync_exclude.lst” を想定)

/etc/rsync_exclude.lst
1
2
masaru.txt
fuga.txt

2-3. 【クライアント側】同期の実行

1
# rsync -avz --delete --exclude-from=/etc/rsync_exclude.lst /home/backup/rsync 192.168.11.102::masaru

-a はアーカイブモード、-v は転送の詳細情報を表示、-z は圧縮転送するオプション。 --delete は同期元から削除されたら同期先も削除するオプション。除外するファイル/ディレクトリが無いのなら、--exclude-from=/etc/rsync_exclude.lst のオプションは不要。

参考サイト


以上。

Comments