日暮途遠(Linux)

Just another WordPress.com site

include/exclude オプションによるファイルの選択(rdiff-backup)

leave a comment »

気まぐれサーバー – rdiff-backup – ローカル/リモートのミラーと差分バックアップ-rdiff-backup-気まぐれ Wiki

include/exclude オプションによるファイルの選択 

  • すべてのファイルをバックアップしたくない場合には、–includeと–excludeオプションにより、どのファイルをバックアップするかを正確に指定することが出来ます。すべてのオプションとその意味については、マニュアルを参照して下さい。
  • この例では、無限ループを避けるために、/mnt/backupを除外します。
rdiff-backup --exclude /mnt/backup / /mnt/backup

(実は、rdiff-backupはこの例のような単純なループを自動的に検出することができます。)これは、単なる例であって、実際には /proc も除外する必要があるでしょう。

  • もっと現実的な例として、/proc, /tmp, /mntを除外します。特に、/procは絶対にバックアップしてはいけません。また、バックアップ元のディレクトリがリモートとなっています。
rdiff-backup --exclude /tmp --exclude /mnt --exclude /proc user@host.net::/ /backup/host.net
  • 複数のincludeとexcludeオプションがある場合には、先に書いた方が優先されます。以下のコマンドでは、/usr/local/binをバックアップしますが/usr/binをバックアップしません。
rdiff-backup --include /usr/local --exclude /usr / host.net::/backup
  • rdiff-backup では、rsync と同じようなワイルドカードを使うことが出来ます。すなわち、**はあらゆるディレクトリに一致し、*は/が含まれないディレクトリに一致します。したがって、
rdiff-backup --include /usr/local --include /var --exclude '**' / /backup

このコマンドは /usr/local と /var ディレクトリのみをバックアップします。シングルクオート ” は、シェルが ** を展開することを防ぐためのものであり、rdiff-backupコマンドの一部ではありません。

  • もっと複雑な例を示します。(長いので2行に分けましたが、1行です。)
rdiff-backup --include '**txt' --exclude /usr/local/games --include /usr/local
   --exclude /usr --exclude /backup --exclude /proc / /backup

このコマンドは /usr/local/games/pong/scores.txt を含むすべての txt で終わるファイルをバックアップします。–include ‘**txt’ が最優先されるからです。/usr/local/bin ディレクトリはバックアップされますが、/usr/share と /usr/local/games/pong はバックアップされません。

  • バックアップするファイルをファイル名リストで指定することもできます。たとえば、include-list というテキストファイルの中身が以下の2行だとします。
/var
/usr/bin/gzip

そのときに、

rdiff-backup --include-filelist include-list --exclude '**' / /backup

このコマンドは、/var, /usr, /usr/bin, /usr/bin/gzip をバックアップしますが、/var/log と /usr/bin/gunzip をバックアップしません。ここで、この –include-filelist のはたらきは –include とは違うことに注意して下さい。つまり、–include /var の場合には /var/log にもマッチしますが、–include-filelist の場合にはマッチしません。

  • 1つのファイルリストに、includeとexcludeを両方書くことができます。たとえば、include-list というファイル名で以下のようなファイルを作成したとします。
**txt
- /usr/local/games
/usr/local
- /usr
- /backup
- /proc

このとき、次のコマンドは2つ上の複雑な例とまったく同じことをします。

rdiff-backup --include-globbing-filelist include-list / /backup

ここで、–include-filelist のかわりに –include-globbing-filelist を使いました。これは、それぞれの行をコマンドラインで指定したと同じように解釈させるためです。そうしなかった場合には、たとえば、**txt は”**txt”というファイル名のファイルとして解釈されてしまいます。

 

~/.cacheなんかが含まれているとエラーを起こすみたいです。

引用させてもらいましたが、属性も含まれているみたいです。たまにあることです。

Written by 廣野秀樹

2012年6月11日 @ 11:13 午前

カテゴリー: Linux

Tagged with

コメントを残す