リモートとローカルでファイルやディレクトリの同期をとるUNIXコマンド。
リモートとローカルでファイルやディレクトリの同期をとる。
ただし、
転送元のファイルを転送先にコピーする(かつ不要なファイルは消す)、一方的な同期。
[例]$ rsync -auvb --backup-dir=~/rsync_test/old ~/rsync_test/from /mnt/hishidama/rsync_test/to
[転送後]$ tree /mnt/hishidama/rsync_test/ /mnt/hishidama/rsync_test/ `-- to `-- from |-- test | `-- tt.txt `-- test.txt 3 directories, 2 files
オプション | 説明 | 例 |
---|---|---|
-a | アーカイブモード(-rlptogDと同じらしい)。ファイルの所有者等の情報を全てコピーする | |
-u | 2つのファイルの更新日時を調べ、新しいもののみ転送する。 -uを付けていると、転送先のファイルを修正して新しくなっている場合はそれを残すが -uが付いていないと、転送元のファイルで上書きする。 |
|
-b | バックアップをとる。 (転送先からファイルを削除する際や上書きする際に、転送先のファイルがバックアップされる) |
|
--backup-dir | -bでバックアップをとる際の、バックアップ用ディレクトリを指定する。 ここで指定したディレクトリは、存在していなくても自動的に作られる。 |
--backup-dir=~/rsync_test/old |
-v | 転送したファイル名を表示する。 (転送する必要がないファイルは転送されず、したがって表示されることもない) |
|
--delete | 転送先のみに有るファイルを、転送先から削除する。 | --delete |
-r | ディレクトリを再帰的に保存する。 | |
-l | ソフトリンクを保存する。 | |
-p | 権限(パーミッション)を保存する。 | |
-t | タイムスタンプを保存する。 | |
-o | ユーザー(所有者(オーナー))を保存する。 | |
-g | グループを保存する。 | |
-D | デバイスを保存する。何のことだかよく分からないけど… | |
転送元 | 転送元のディレクトリを指定する。 「/」が最後に付くとそのディレクトリの下のファイルが転送対象、 付かないとそのディレクトリそのものが転送対象。 |
~/rsync_test/from ~/rsync_test/from/ |
転送先 | 転送先のディレクトリを指定する。 ちなみにsambaでマウントしたディレクトリも使える。 |
/mnt/hishidama/rsync_test/to |
$ rsync -auvb --backup-dir=~/rsync_test/old ~/rsync_test/from /mnt/hishidama/rsync_test/to building file list ... done mkdir /mnt/hishidama/rsync_test/to : No such file or directory (1) unexpected EOF in read_timeout
$ rsync -rlptogDuvb --backup-dir=~/rsync_test/old ~/rsync_test/from /mnt/hishidama/rsync_test/to building file list ... done chown from : Operation not permitted chown from/test : Operation not permitted chown from/test.txt : Operation not permitted chown from/test/tt.txt : Operation not permitted from/tt.txt chown from/テスト.txt : Operation not permitted backup_dir is ~/rsync_test/old chown from/tt.txt : Operation not permitted chown from : Operation not permitted chown from/test : Operation not permitted wrote 204 bytes read 42 bytes 164.00 bytes/sec total size is 32 speedup is 0.13この場合、 「-g」オプションを除けばこのエラーは消える。
OpenSSHセキュリティ管理ガイド (SSHの本だが、rsyncを暗号化する例が載っている)