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 登録している。
ちなみに、クライアント側のマシンが起動していない時にサーバ側から同期を要求してきても、特にエラーにはなりません。
これで、サーバの重要なファイルをクライアント側にバックアップできます。 他にも様々なバックアップ方法がありますが。
以上。
Comments