[an error occurred while processing this directive]
rsync

  • オプションについて
  • rsync

    1 Mar 1999

    NAME

    rsync - rcp よりも速くて、柔軟性に富んでいます

    SYNOPSIS


    rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST


    rsync [OPTION]... [USER@]HOST:SRC DEST


    rsync [OPTION]... SRC [SRC]... DEST


    rsync [OPTION]... [USER@]HOST::SRC [DEST]


    rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST


    rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]


    説明


    rsync は rcp とほとんど同じ方法で動くプログラムですが、より多くの オプションを持っています。目的のファイルが既に存在する場合に、 rsync のリモート更新プロトコルは高速なファイル転送を行います。


    rsync のリモート更新プロトコルは2つのファイルセット間のネットワークリンクの 違いだけを転送します。その際には、パッケージに添付されている技術報告書に あるような効果的なチェックサム検索アルゴリズムを使っています。


    その他の rsync の機能:



    概要


    rsync には6通りの使い方があります:



    全ての場合では(リスト表示を除く)、ソースとオブジェクトのパスの少なくとも1つは ローカルでなければなりません。


    セットアップ


    インストールについては README ファイルを読んでください。


    1度インストールすれば rsh を使うことのできるマシンに対して rsync を使うことができます。rsync はソースとオブジェクトがローカルではない場合に、通信に rsh を使います。


    コマンドラインのオプションから -e を使うか、RSYNC_RSH 環境変数を設定することで、 rsh とは違うのものを選択することができます。


    セキュリティを考慮すれば、ssh を使うのが一般的です。


    rsync はソースとオブジェクトのマシンの両方にインストールされていなければなりません。


    慣用法


    rcp を使うのと同じように rsync を使います。ソースとオブジェクトを 指定しなければなりません。また、片方はリモートかもしれません。


    以下にシンタックスの例をいくつか示します:


    rsync *.c foo:src/


    カレントのディレクトリにある *.c と一致する全てのファイルを、foo というマシンの src ディレクトリに 転送します。もし既にリモートのシステムにファイルが存在すれば、ファイルの相違部分だけを 転送する rsync のリモート更新プロトコルが使われます。詳しくは技術報告書をご覧ください。


    rsync -avz foo:src/bar /data/tmp


    foo というマシンにある src/bar ディレクトリの全てのファイルを、ローカルマシンの /data/tmp/bar ディレクトリへ 再帰的に転送します。"archive" モードで転送された全てのファイルは、シンボリックリンク、デバイス、属性、 パーミッション、所有者等が維持されます。そして、転送の際のサイズを小さくするために圧縮されます。


    rsync -avz foo:src/bar/ /data/tmp


    ソースの後にスラッシュが付くと、foo というマシンにある src/bar ディレクトリ以下の全てのファイルを /data/tmp/ に転送します。ソース名の後に付く / は、「このディレクトリのあるコンテンツをコピーする」 ことを意味します。スラッシュがなければ、「このディレクトリをコピーする」ことを意味します。 この違いは --delete オプションを使う際に特に重要になります。


    ソース名とオブジェクト名の両方に':'がなければ、rsync はローカルモードになります。 この場合には、優れたコピーコマンドとして使うことになります。


    rsync somehost.mydomain.com::


    somehost.mydomain.com というホストで利用できる anonymous の rsync モジュールを全て表示します (詳しくは次の章を読んでください)


    rsync サーバへの接続


    転送に rsh や ssh を使わなくても rsync を利用することが可能です。 この場合には TCP の 873 ポートで走っているリモートの rsync サーバに接続する ことになります。


    あなたのウェブ・プロキシーに hostname:port がポイントするように、環境変数 RSYNC_PROXY を設定すれば 、ウェブ・プロキシー経由で接続できるでしょう。ただし、あなたのウェブ・プロキシーが 873 番ポートの プロキシーを許可するようにプロキシー・サーバのルールセットで設定されていなければなりません。


    以下の点を除けば、rsh や ssh と同じように rsync を使うことができます:



    リモートのサーバのパスでは認証を要求されるかもしれません。もし認証を要求されると、接続時に パスワード入力のプロンプトが返されます。使用するパスワードを RSYNC_PASSWORD 環境変数に設定するか、 --password-file オプションを使えばパスワードのプロンプトは表示されません。rsync のスクリプトを 使用する時に便利でしょう。


    注: システムによっては環境変数が全てのユーザに対して不可視であることがあります。 その場合には --password-file の使用をお勧めします。


    rsync サーバの起動


    rsync サーバはデフォルトで /etc/rsyncd.conf という設定ファイルを使います。詳しくは rsyncd.conf(5) man ページを参照してください。



    以下に rsync の使用例をいくつか示します。


    妻のホームディレクトリには、MS ワードのファイルやらメールフォルダやらがあるのだが、 こんな感じのクーロンを走らせてバックアップしています


    rsync -Cavz . arvidsjaur:backup


    夜な夜な、私のマシンである"arvidsjaur"に PPP リンクを通じてディレクトリを バックアップしている。


    samba のソースツリーの同期を取るために、以下のような Makefile targets を使っている:


    get:
    rsync -avuzb --exclude '*~' samba:samba/ .


    put:
    rsync -Cavuzb . samba:samba/


    sync: get put


    これで他のリンクの終わりまで CVS ディレクトリの同期を取ることができる。 リモートのマシンで cvs の操作することで時間を節約できる。リモート cvs プロトコルは 効率的とは言えないのだから。


    コマンドでの新旧 ftp サイト間ディレクトリのミラーリングは


    rsync -az -e ssh --delete ~ftp/pub/samba/ nimbus:"~ftp/pub/tridge/samba"


    これをクーロンで2、3時間毎に走らせます。


    オプションの概要


    rsync で利用できるオプションの概要を示します。それぞれのオプションの詳細 については以下を見てください。


     -v, --verbose               転送情報を詳しく表示
     -q, --quiet                 転送情報を表示しない
     -c, --checksum              常にチェックサムを行う
     -a, --archive               アーカイブモード(-rlptgoD オプションと同義)
     -r, --recursive             ディレクトリで再帰的に実行する
     -R, --relative              相対パス名を使う
     -b, --backup                バックアップを作成する (デフォルトで ~ が付く)
         --suffix=SUFFIX         バックアップのサフィックスを変更
     -u, --update                アップデートのみ許可 (上書き禁止)
     -l, --links                 ソフトリンクを維持する
     -L, --copy-links            ファイルのようにソフトリンクを扱う
         --copy-unsafe-links     送信側ツリー外のリンクをコピー
         --safe-links            受信側ツリー外のリンクを無視
     -H, --hard-links            ハードリンクを維持する
     -p, --perms                 パーミッションを維持する
     -o, --owner                 オーナーを維持する (root のみ)
     -g, --group                 グループを維持する
     -D, --devices               デバイスを維持する (root のみ)
     -t, --times                 タイムスタンプを維持する
     -S, --sparse                密度の低いファイルを効率的に扱う
     -n, --dry-run               実行時の動作だけを表示
     -W, --whole-file            rsync アルゴリズムを使わない
     -x, --one-file-system       再帰的に実行された時にファイルシステムの境界を横断しない
     -B, --block-size=SIZE       rsync アルゴリズムのチェックサムブロックサイズの制御(default 700)
     -e, --rsh=COMMAND           rsh の代替を指定
         --rsync-path=PATH       リモートのマシーンで rsync のコピーへのパスを指定
     -C, --cvs-exclude           システム間で転送したくない広範囲のファイルを除外(CVSの方法と同じ)
         --delete                送信側にないファイルを削除
         --delete-excluded       受信側にある exclud ファイルも削除
         --partial               転送途中のファイルを保存します
         --force                 ディレクトリが空でなくても削除
         --numeric-ids           ユーザとグループの id 番号を転送して、転送後にマッピング
         --timeout=TIME          IO タイムアウトを設定(秒)
     -I, --ignore-times          タイムスタンプとファイルサイズのチェックをしない
         --size-only             タイムスタンプのチェックをしないで、ファイルサイズのチェックだけをする
     -T  --temp-dir=DIR          tmp ファイルのディレクトリを指定
         --compare-dest=DIR      受信側のファイルと比較するための追加ディレクトリ
     -z, --compress              受信ファイルを圧縮compress file data
         --exclude=PATTERN       パターン一致するファイルを除外
         --exclude-from=FILE     ファイルに記述されたパターンと一致するファイルを除外
         --include=PATTERN       パターン一致するファイルを除外しない
         --include-from=FILE     ファイルに記述されたパターンと一致するファイルを除外しない
         --version               rsync のバージョンを表示する
         --daemon                rsync をデーモンとして走らせる
         --config=FILE           別の rsyncd.conf ファイルを指定
         --port=PORT             別の rsync ポート番号を指定
         --stats                 rsync アルゴリズムの転送効率を表示
         --progress              転送中の情報を表示
         --log-format=FORMAT     ログフォーマットを指定
         --password-file=FILE    ファイルからパスワードを得る
     -h, --help                  このヘルプを表示する
    
    


    オプション


    rsync は GNU ロング・オプション・パッケージを使っています。コマンドラインのオプションの 多くは、ショートかロングのどちらかです。以下ではコンマで区切って記述してあります。 オプションによってはロングだけのものがあります。オプションの '=' では変数を取ります; 代わりに空白も使われます。



    EXCLUDE パターン


    exclude と include のパターンは、どのファイルを転送して、スキップするのかを 柔軟に選択します。


    rsync はコマンドラインで指定された include/exclude オプションのリストを作成します。 ファイル名があると、rsync はそれぞれの exclude/include パターンに対して名前をチェックします。 最初に一致したパターンの処理が行われます。exclude パターンがあれば、ファイルをスキップします。 include パターンがあれば、ファイルをスキップしません。include/exclude のパターンがなければ、 ファイルをスキップしません。


    --include と --exclude オプションはそれぞれ1つのパターンを指定します。 多様なパターンを追加するには、--include-from と --exclude-from のオプションを 使うか、あるいは複数の --include と --exclude のオプションを使ってください。


    パターンにはいくつかの形式があります。ルールは:



    exclude リストの中で +/- のルールを使うと、include と exclude のオプションを両方含んだ exclude リストを 持つことになり、とても便利です。


    いくつか例を示します:



    DIAGNOSTICS


    rsync はしばしば謎めいたエラーを出力します。混乱を招くものとしては "protocol version mismatch - is your shell clean?" というのがあります。


    このメッセージは起動スクリプトやリモートシェルで、rsync が転送に使っているストリームに不要なノイズが生じる ことが原因です。この問題を診断するには、以下のようなリモートシェルを走らせます:


       rsh remotehost /bin/true > out.dat
    
    


    そして、out.dat を見てください。正確に動作していれば out.dat のファイル長はゼロです。 もし rsync から上記のエラーが出ている場合には out.dat になんらかのテキストやデータが 出力されます。その中身を見て何がそのメッセージを出力しているのか、解決してください。 ありがちなのは、非インタラクティブなログインに対するアウトプットのステートメントを含んだ、 シェルのスタートアップスクリプト(.cshrc や .profile)の記述が間違っていることです。


    環境変数



    FILES


    /etc/rsyncd.conf


    SEE ALSO


    rsyncd.conf(5)


    DIAGNOSTICS


    バグ


    times are transferred as unix time_t values


    file permissions, devices etc are transferred as native numerical values


    see also the comments on the --delete option


    Please report bugs! The rsync bug tracking system is online at http://rsync.samba.org/rsync/


    バージョン

    この man ページは rsync version 2.0 です。


    CREDITS


    rsync is distributed under the GNU public license. See the file COPYING for details.


    A WEB site is available at http://rsync.samba.org/


    The primary ftp site for rsync is ftp://rsync.samba.org/pub/rsync.


    We would be delighted to hear from you if you like this program.


    This program uses the excellent zlib compression library written by Jean-loup Gailly and Mark Adler.


    THANKS


    Thanks to Richard Brent, Brendan Mackay, Bill Waite, Stephen Rothwell and David Bell for helpful suggestions and testing of rsync. I've probably missed some people, my apologies if I have.


    AUTHOR


    rsync was written by Andrew Tridgell and Paul Mackerras. They may be contacted via email at tridge@samba.org and Paul.Mackerras@cs.anu.edu.au



    rsync ホームページ