まず、rsyncのinclude / exclude構文を少し読んでください。あなたがやりたいことは**
グロブより*
グロブを使うほうがいいという感じがします。(**
任意の数のエントリに*
展開されますが、複数のディレクトリエントリと一致する可能性のある単一のエントリにのみ展開されます。詳細は、「包含/除外パターンルール」にあります。)man rsync
とはいえ、最小限の手間でバックアップからシステムを既知の動作状態に復元できるようにする場合は、ファイルやディレクトリを除外する際に注意が必要です。私は自分でrsnapshotを使用しており、実際には反対のアプローチをとっています。注意深く選択されたいくつかのディレクトリを除いて、すべてを含めます。
したがって、私のrsnapshot.confは実際に次のように述べています(rsnapshotの構成ファイルパーサーを幸せにするためのタブを使用):
interval backup NNN # pick your poison
one_fs 0
exclude /backup/**
exclude /dev/**
exclude /proc/**
exclude /run/**
exclude /sys/**
exclude /tmp/**
backup / ./
それ以外はほとんどありません。はい、それは私が厳密に必要なものよりも少し多くコピーする可能性があることを意味しますが、それはエファマルとして意図されていないものをコピーすることを保証します。rsnapshotがrsyncのハードリンクから重複解除への動作を使用するため、これに対する実際のコストは最初の実行時のみです。その後、適切なサイズ(データセットの合計サイズと比較して)のバックアップターゲットの場所があると仮定すると、時間またはディスク領域の追加はほとんど必要ありません。/ backupの内容は除外します。これは、バックアップターゲットファイルシステムをマウントする場所だからです。それを除外しないと、バックアップをそれ自体にコピーする状況になります。ただし、単純にするために、ベアメタルに復元する必要がある場合は、マウントポイントを保持したいと思います。
私の場合、合理的に使用することもできませんone_fs 1
。ZFSは現在約40のファイルシステムで実行しています。これらすべてを明示的にリストすることは、メンテナンスの悪夢となり、ZFSファイルシステムでの作業を必要以上に複雑にします。
上記およびそれ以降に除外したいもののほとんどは、とにかくディストリビューションに依存するため、一般的な答えを出すことは事実上不可能です。そうは言っても、/ varの下に候補が見つかる可能性があります。
exclude /somepath/*
この場合は問題ありません。/somepath/
期待どおり、内のすべてが除外されます。の**
すべて/somepath/
がすでに除外されている場合は、深く見る必要がないため、必要ありません。