mk-mode BLOG

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

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

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

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

こんばんは。

前回は CentOS 6.5 サーバを同期先として rsync でファイル・ディレクトリの同期を行いました。
今回はその逆で rsync で CentOS サーバを同期元としてファイル・ディレクトリの同期を行います。

0. 前提条件

  • CentOS 6.5(x86_64) を Minimal で最小インストールしている。
  • クライントマシンは Linux Mint 14(64bit) を想定。
  • サーバマシン(CentOS 6.5)からローカルマシン(Linux Mint 14)へ同期することを想定。
  • サーバ側のバックアップ用ディレクトリは “/home/backup/rsync/” とする。
  • 同期元(サーバマシン)の IP アドレスは 192.168.11.102 を想定。
  • 同期先(クライアントマシン)の IP アドレスは 192.168.11.11 を想定。
  • クライアント側から同期要求があった場合にのみ rsync を起動させるために、 xined を使用する。
  • 以下の記事内では、サーバ側の設定とクライアント側の設定を記述しているので混同しないこと。

1. 同期先(Linux Mint)側

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

1
# apt-get -y install rsync

1-2. 【クライアント側】同期先ディレクトリ作成

1
# mkdir /home/backup/rsync

1-3. 【クライアント側】rsync 有効化設定

/etc/default/rsync
1
RSYNC_ENABLE=true  # <= false から変更

1-4. 【クライアント側】rsync 設定ファイル作成

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

1-5. 【クライアント側】xinetd インストール

1
# apt-get -y install xinetd

1-6. 【クライアント側】xinetd 設定ファイル作成

/etc/xinetd.d/rsync
1
2
3
4
5
6
7
8
9
10
11
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-7. xinetd 自動起動設定

1
# update-rc.d xinetd defaults

2. 同期元(CentOS)側

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

1
# yum -y install rsync

2-2. 【サーバ側】同期除外ファイル指定

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

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

2-3. 【サーバ側】同期の実行

除外ファイルが無ければ --exclude-from は不要。

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

2-4. 【サーバ側】自動実行用シェルスクリプト

以下は、除外ファイル無しの例。

/root/rsync_backup_to_client.sh
1
2
#!/bin/bash
rsync -av --delete /home/backup/rsync 192.168.11.13::hoge

2-5. 【サーバ側】自動実行用シェルスクリプト権限設定

1
# chmod 700 /root/rsync_backup_to_client.sh

2-6. 【サーバ側】自動実行設定

以下は、毎時55分に CentOS サーバから Linux Mint マシンに同期する例。

/etc/cron.d/rsync_backup_to_client
1
2
# エラーが発生しようがしまいがメールは送信しない。
55 * * * * root /root/rsync_backup_to_client.sh > /dev/null 2>&1

参考サイト


次回は、Git サーバの構築について紹介する予定です。

以上。

Comments