前回は 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/rsync1
| RSYNC_ENABLE=true # <= false から変更
|
1-4. 【クライアント側】rsync 設定ファイル作成
/etc/rsyncd.conf1
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/rsync1
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 インストール
2-2. 【サーバ側】同期除外ファイル指定
同期元の対象ディレクトリ内から同期を除外するファイル/ディレクトリのリスト(ファイル名は任意)を作成する。
除外するファイル・ディレクトリがなければこの作業は不要。(ファイル名は “/etc/rsync_exclude.lst” を想定)
/etc/rsync_exclude.lst
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.sh1
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_client1
2
| # エラーが発生しようがしまいがメールは送信しない。
55 * * * * root /root/rsync_backup_to_client.sh > /dev/null 2>&1
|
参考サイト
次回は、Git サーバの構築について紹介する予定です。
以上。