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 Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間