Rsyncサーバの設定

Rsyncを利用すると、2台のPCのディレクトリ内のファイルを同期する事が可能で、ファイルのバックアップや2台のサーバのファイル同期、WEBコンテンツのアップロードなどに利用すると便利です。

ここでは、Rsyncdサーバの設定例と利用方法を記載します。

 

Rsyncdサーバの設定

Rsyncdサーバの設定を行います。

ここでは、CentOS-5を利用しました。

 

xinetdのインストール

CentOSでは、rsyncdはxinetd経由で起動するようになっていますので、まず、xinetdをインストールします。

yum install xinetd

 

xinetdを起動します。

/etc/init.d/xinetd start

 

xinetdの自動起動を設定します。

chkconfig xinetd on

 

 

rsyncdの起動設定

/etc/xinetd.d/rsyncファイルを編集し、rsyncdが起動出来るようにします。

service rsync
{
        disable = no
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}

ここで、xinetdに変更を反映させるため、リロードします。

/etc/init.d/xinetd reload

 

 

ログの設定

rsyncのログは、syslog経由で出力する為、syslogの設定を先に行います。

/etc/syslog.confの最下行にlocal5を追加します。

# for rsync
local5.info				/var/log/rsync.log

 

logrotateでログローテーションを行うため、/etc/logrotate.d/syslogにも追加します。

/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler \
   /var/log/boot.log /var/log/cron /var/log/rsync.log {
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

 

ここで、syslogを再起動して起きます。

/etc/init.d/syslog restart

 

 

rsyncdの設定

Rsyncサーバの設定は、/etc/rsyncd.confを作成しておこないます。

/etc/rsyncd.confでは、ロギングの設定とグローバル設定、そして、各ディレクトリ用の設定を記載します。

/var/htdocs/var/backup内にrsyncでアクセス出来るようにします。

ポリシーは以下の通りです。

1.ログは、syslog経由で出力する

2.アクセス名は、htmlとbackupとする

3.ローカルネットワークからのみアクセス可能

 

/etc/rsyncd.conf

## Rsync logging Settings
syslog facility = local5
transfer logging = yes

## Global Settings
uid = root
gid = root
dont compress = *.gz *.tgz *.zip *.pdf *.sit *.sitx *.lzh *.bz2 *.jpg *.jpeg *.gif *.png

[htdocs]
	path = /var/www/htdocs/
	comment = html files
	hosts allow = 192.168.1.0/24,192.168.2.0/24
	hosts deny = *
	read only = no

[backup]
	path = /var/backup/
	comment = backup files
	hosts allow = 192.168.1.100
	hosts deny = *
	read only = no

これで、rsyncdの設定は終了です。
なお、read only=yesとすると、読み込み専用にできます。

 

 

rsyncサーバの利用方法

ここまで、rsyncサーバを設定しましたので、この利用方法について記載します。

別PCからRsyncサーバにアクセスするには、rsyncコマンドを利用します。

 

rsyncコマンドの利用例

いくつか、上記設定のRsyncサーバにアクセスして同期する例を示します。

書式は、[コマンド] [オプション] [同期元] [同期先]です。

同期元ディレクトリ内と、同期先の状態を同期する。ただし、同期先にのみあるファイルはそのまま。

rsync -aucz /home/site/htdocs/ 192.168.1.1::htdocs

 

同期元ディレクトリ内と、同期先の状態を同期する。ただし、同期元に無いファイルは同期先から削除する。(完全同期)

rsync -aucz --delete /home/site/htdocs/ 192.168.1.1::htdocs

 

 

rsyncコマンドオプション

主なrsyncコマンドオプションを記載します。

書式は、[コマンド] [オプション] [同期元] [同期先]です。

同期先の指定には、以下のようなパターンがあります。

ホスト::同期先

ユーザ名@ホスト::同期先

オプション 解説
-n 実際には同期を実行せず,実行時の動作だけを表示する。
-v コピーするファイル名を標準出力する。
-a -rlptgoDと同義(–recursive –links –perms –times –group –owner –devices)
-r ディレクトリを再帰的にコピーする。このオプションを指定していないと、ディレクトリをコピーしない。
-c [同期元]ファイルと[同期先]ファイルをchecksumで比較する。
-u [同期先]に[同期元]よりも新しいファイルがある場合は,ファイルを同期しない。。
-z 転送時に gzip 圧縮を使用する。
-l シンボリックリンクを[同期先]で作り直す。
-p [同期先]のパーミッションを[同期元]と同じにする。
-t ファイルのタイム・スタンプを維持してファイルを同期する。
-g [同期先]の所有グループを[同期元]と同じにする。
-o [同期先]の所有者を[同期元]と同じにする。
–numeric-ids 数字のuidとgidで指定する場合に必要。
-I 同じサイズと、同じ修正日時(タイムスタンプ)のファイルをスキップする。
–exclude=パターン パターンに一致するファイルをコピーしない。
–delete [同期元]に無いファイルは[同期先]で削除する。
–update [同期先]のファイルを更新しても、[同期元]のファイルで上書きされない。

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <img localsrc="" alt="">