Linux
Tips |
|
2つのディレクトリの同期をとるには
北浦訓行
2001/6/7
|
2つのディレクトリの同期をとる(2つのディレクトリの内容を同一にする)には、rsyncコマンドを使用する。rsyncは、rcpコマンドのようにリモートファイルのコピー(ネットワークで接続されたPC間でファイルをコピーすること)に対応したコマンドだが、コピー先に存在するファイルをコピーしないなどの機能により、より高速な動作が可能だ。また、非常に多くのオプションが用意されており、柔軟に運用できる。
例えば、/home/projectディレクトリと~/projectディレクトリの内容を完全に同一にする場合、以下のように行う。
$ rsync -auvz --delete /home/project/ ~/project/
building file list ... done
created directory /home/ユーザー名/project/
./
1.txt
2.txt
./
wrote 6534 bytes read 48 bytes 13164.00 bytes/sec
total size is 43440 speedup is 6.60 |
rsyncで使用する主なオプションは以下のとおりだ。
|
-a |
可能な限りファイルの情報を保持してコピーする |
|
-u |
更新されたファイルだけをコピーする |
|
-v |
詳しいメッセージを表示する |
|
-z |
ファイルを圧縮する |
|
-b |
古いファイルのバックアップを作成する |
|
--exclude |
指定したファイルを除外してコピーする |
|
-e ssh |
sshでデータを暗号化してコピーする |
|
--delete |
送信元に存在しないファイルを削除する |
rsyncは、リモート間だけでなくデータ用のディレクトリとMOなどのリムーバブルメディア間の同期をとることもできる。例えば、FDを使って勤務先と自宅のPC間でデータをやりとりする場合(例では、~/mochikaeriディレクトリの更新された内容をFDにコピー)は、以下のようにする。
$ rsync -auvzb --exclude '*~' ~/mochikaeri/ /mnt/floppy/
building file list ... done
created directory /home/ユーザー名/project/
./
gamen1.tif
./
wrote 5005 bytes read 36 bytes 3360.67 bytes/sec
total size is 200224 speedup is 39.72 |
リムーバブルメディアと同期させる場合は、リムーバブルメディアのマウントが必要だ。マウントする際には、メディアをドライブに入れた状態でmountコマンドを実行しなければならない。
Linux Squareフォーラム Linux Tipsカテゴリ別インデックス |
Linux & OSS 記事ランキング
本日
月間