rsyncの特徴について

ファイルやディレクトリをバックアップ,同期するツールや方法はいくつかありますが、私はケースバイケースで複数の手段を使い分けています。そのなかでもとりわけrsyncは多様しています。

rsync の用途オプション等は、他のサイトやドキュメントで紹介されていますので、省略しますが、今回は特徴を挙げてみます。

rsync 特徴

  • 同期でコピー先の不一致ファイル・ディレクトリを削除するパラメータがあります
  • 同期で特定のパターン一致するファイルやディレクトリ配下を除外することができる
  • ネットワーク間ホスト同士で同期することができます( rsync サーバ )
  • rsyncサーバは通常セキュリティを保つためにxinetなどのTCPラッパーを経由するといい
  • ssh経由でrsync同期を実行できる その際サーバ側でrsyncデーモンを起動する必要はない
  • ネットワーク間同期で暗号化・認証したい場合、ssh経由でおこなう
  • 反対にネットワーク間同期での認証方法を持ち合わせていない
  • コピーコマンドと違い、ファイルシステム上のファイルブロックを上書きせず、別ブロックに書き込む
    (これはコピー先の本データをハードリンクコピーしている場合に大変たすかる)
  • 同期前にどのようなファイル・ディレクトリを同期するのかテストできる(–dry-run オプション)

一点rsyncで気をつけたいのが「コピー先」のディレクトリ名

$ rsync -av /home/xxx1  /media/disk-1/backup/
$ rsync -av /home/xxx1/ /media/disk-1/backup/

前者は/home/xxx1ディレクトリの中身と、そのディレクトリ自体がコピーされますが、後者は/home/xxx1ディレクトリの中身はコピーされますが、ディレクトリはコピーされません。

  • ディレクトリも含めてコピーしたい場合:/ なし
  • ディレクトリ以下のツリーをコピーしたい場合:/ あり

実際にテストするなどして確認してみるといいでしょう。

バックアップ対象を除外したい

バックアップなどを行う際は「このファイル形式はバックアップ対象から除外したい」「このディレクトリ以下は除外したい」と思うことはありますよね。rsync は –exclude や –filter オプションがあります。

$ rsync -av –exclude ‘*.jpg’ ~/xxx1 /media/disk-1/backup/

これは xxx1 ディレクトリ内の *.jpg マッチしたファイルすべて除外するというものです。

私の場合、cpコマンドのハードリンクコピーとrsyncを併用した使い方で、開発コード等のバックアップを常時行っています。簡単なケーススタディですみませんが、いつかもっと掘り下げたTipsを紹介したいと思います。

関連したページ

    None Found

nexia access map
x