27.6 rsyncの概要

rsyncは、大量のデータを定期的に送信する必要があるが、変更量はあまり多くない場合に便利です。たとえば、バックアップの作成時などが該当します。もう1つのアプリケーションはステージングサーバに関係します。この種のサーバには、DMZでWebサーバに定期的にミラー化されるWebサーバの完全なディレクトリツリーが格納されます。

27.6.1 設定と操作

rsyncには2つの操作モードがあります。このプログラムを使用してデータをアーカイブまたはコピーできます。そのためには、ターゲットシステム上にsshなどのリモートシェルがあれば十分です。ただし、rsyncをdaemonとして使用し、ネットワークにディレクトリを提供することもできます。

rsync の基本操作モードの場合、特別な設定は不要です。 rsync では、ディレクトリ全体を別のシステムに直接ミラー化できます。たとえば、次のコマンドでは、tuxのホームディレクトリのバックアップがバックアップサーバsun上に作成されます。

 rsync -baz -e ssh /home/tux/ tux@sun:backup
 

次のコマンドは、ディレクトリを復元する場合に使用します。

 rsync -az -e ssh tux@sun:backup /home/tux/
 

ここまでの操作は、scpのような通常のコピーツールの場合とほぼ同じです。

rsyncのすべての機能を完全に使用可能にするには、「rsync」モードで操作する必要があります。そのためには、いずれかのシステムでrsyncdデーモンを起動します。設定はファイル/etc/rsyncd.conf内で行います。たとえば、rsyncでディレクトリ/srv/ftpを使用可能にするには、次の設定を使用します。

gid = nobody
uid = nobody
read only = true
use chroot = no
transfer logging = true
log format = %h %o %f %l %b
log file = /var/log/rsyncd.log

[FTP]
        path = /srv/ftp
        comment = An Example
 

次に、rcrsyncd startを使用してrsyncdを起動します。また、ブート処理中にrsyncdを自動的に起動する方法もあります。このようにセットアップするには、このサービスをYaSTのランラベルエディタで有効にするか、またはコマンドinsserv rsyncdを入力します。また、rsyncdをxinetdで起動することもできます。ただし、この方法はrsyncdの使用頻度が低いサーバの場合にのみ使用してください。

この例では、すべての接続を示すログファイルも作成されます。このファイルは/var/log/rsyncd.logに格納されます。

これで、クライアントシステムからの転送をテストできます。そのためには次のコマンドを使用します。

rsync -avz sun::FTP
 

このコマンドを入力すると、サーバのディレクトリ/srv/ftpにあるファイルがすべてリストされます。このリクエストはログファイル/var/log/rsyncd.logにも記録されます。実際の転送を開始するには、ターゲットディレクトリを指定します。現在のディレクトリには.を使用してください。次に例を示します。

rsync -avz sun::FTP .
 

デフォルトでは、rsyncでの同期中にファイルは削除されません。ファイルを削除する必要がある場合は、オプション--deleteを追加してください。新しい方のファイルが削除されないように、代わりにオプション--updateを使用することもできます。競合が発生した場合は、手動で解決する必要があります。

27.6.2 関連情報

rsyncに関する重要な情報は、マニュアルページman rsyncおよびman rsyncd.confを参照してください。rsyncの基本原則に関する技術情報については、/usr/share/doc/packages/rsync/tech_report.psを参照してください。rsyncの最新ニュースについては、このプロジェクトのWebサイトhttp://rsync.samba.org/を参照してください。