CentOS - Linux Mint へ Rsync で同期(xinetd 使用)!

Updated:


CentOS サーバのあるディレクトリを、別のマシン(今回は Linux Mint マシン)へ同期する方法についての記録です。

cron で定期的に実行するようにしておくと便利です。

作業メモ

0. 前提条件

  • サーバマシン(コピー元)は CentOS 6.3 (32bit) を想定。
  • クライアントマシン(コピー先)は Linux Mint 13 Maya (64bit) を想定。
  • 例として、サーバマシンの /home/backup ディレクトリを、 クライアントマシンの /home/backup/server ディレクトリへ同期する。
  • 例として、サーバマシンの IP アドレスは 192.168.11.1、 クライアントマシンの IP アドレスは 192.168.11.101 とする。
  • 以下の作業はわかりやすくするために、全て root で行なっている。

サーバ・クライアントの組み合わせがどうであれ(RedHat 系、Debian 系等)、方法は似たような形になると思う。

1. 【コピー先(Linux Mint)】Rsync インストール

コピー先のクライアントマシン(今回は Linux Mint)へ Rsync をインストールする。

# apt-get -y install rsync

2. 【コピー先(Linux Mint)】バックアップ先ディレクトリ作成

コピー先のクライアントマシンに同期させるディレクトリを作成する。

# mkdir /home/backup/server

3. 【コピー先(Linux Mint)】Rsync 設定ファイル作成

コピー先のクライアントマシンで Rsync の設定をする。 【ファイル: /etc/rsyncd.conf 】

# rsync 実行時に使用する名前
[server]
# コピー先ディレクトリ
path = /home/backup/server
# コピーを許可するホスト(コピー元ホストを指定)
hosts allow = 192.168.11.1
hosts deny = *
list = true
uid = root
gid = root
read only = false

4. 【コピー先(Linux Mint)】xinetd インストール

常に rsync を起動してサーバからの同期要求を待機するのではなく、サーバから同期要求があった場合のみ rsync を起動させる方法を採る。 そのために、コピー先のクライアントマシンに xinetd をインストールする。

# apt-get -y install xinetd

5. 【コピー先(Linux Mint)】xinetd 設定ファイル作成

コピー先のクライアントマシンで xinetd の設定を編集する。 【 ファイル: /etc/xinetd.d/rsync 】

service rsync
{
        disable         = no          # <- yes を no に変更
        flags           = IPv6
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}$

6. 【コピー先(Linux Mint)】xinetd 自動起動設定

コピー先のクライアントマシンの xinetd をマシン起動時に自動起動するように設定する。

# update-rc.d xinetd defaults

7. 【コピー元(CentOS)】Rsync インストール

コピー元のサーバマシンに rsync をインストールする。

# yum -y install rsync

8. 【コピー元(CentOS)】コピー除外ファイル指定

コピー元の対象ディレクトリ内からコピーを除外するファイル/ディレクトリのリスト(ファイル名は任意)を作成する。 除外するファイル/ディレクトリがなければこの作業は不要。 【 ファイル: /etc/rsync_exclude.lst 】

hoge.txt
fuga.txt

9. 【コピー元(CentOS)】同期の実行

以上の設定完了後、コピー元のサーバマシンで以下のようにしてコピーを行う。

# rsync -avz --delete --exclude-from=/etc/rsync_exclude.lst /home/backup 192.168.11.101::server

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

10. その他

同期の作業を自動で行いたいのなら、コピー元で cron 登録するとよい。 当方は、上記の 9 のようなコマンドをスクリプトファイルにし、それを定期(1時間毎)に起動するよう cron 登録している。

ちなみに、クライアント側のマシンが起動していない時にサーバ側から同期を要求してきても、特にエラーにはなりません。


これで、サーバの重要なファイルをクライアント側にバックアップできます。 他にも様々なバックアップ方法がありますが。

以上。





 

Sponsored Link

 

Comments