rsync




基本的にはリモートにファイルをコピーする.rcp や cp と同じように 使うことも出来るらしいが,色々とオプションがあるので, たくさんのファイルを一度にコピーするときや,バックアップをとるときには 便利かも知れない.特に SSH を併用できるのが利点だと思う.

例えば,a というマシンの ~/src ディレクトリの下のすべての .c ファイルを リモートの b というマシンの同じディレクトリにコピーする場合,
a %  rsync -e ssh -au *.c b:src/
とでもすればよい.ただし,rsh でコピーするなら(つまり b の .rhosts に a が 書いてあるなら),"-e ssh" の部分は要らない.
リモートの b というマシンの ~/WWW ディレクトリの中身を a というマシンの ~/WWW ディレクトリの中身と同一のものにするのなら,
a %  rsync -e ssh -aulr --delete ~/WWW b:
とする."--delete" オプションをつけると,a にないファイルが b にあれば 消去してしまうので注意する. なお,両方のホストに rsync がインストールされている必要があるので注意する.


主なオプション

-e ssh
SSH を使ってファイルをコピーする.
-u
より新しいファイルは更新しない.
-a
タイムスタンプなどのファイル情報を送り先にも反映させる.
-r
ディレクトリの下のファイルもコピー.
-l
シンボリックリンクをリンクのままコピー.
-L
シンボリックリンクを普通のファイルの形でコピー.
-b
ファイルを更新するときに古いファイルを '~'のついたバックアップファイルと して保存.
--delete
ディレクトリをコピーするときに,送り元にないファイルが送り先にあれば, それを消去.
(-b オプションと一緒に使うのがいいと思う.)




戻る