include/exclude オプションによるファイルの選択(rdiff-backup)
気まぐれサーバー – 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なんかが含まれているとエラーを起こすみたいです。
引用させてもらいましたが、属性も含まれているみたいです。たまにあることです。
コメントを残す