web-dev-qa-db-ja.com

バックアップの実行を安全に除外できるエントリ

rsnapshot に基づくバックアップ戦略を計画しています。

復元でシステムが再び機能するのに役に立たないファイルとディレクトリを除いて、システム全体のバックアップを実行したいと考えています。私はすでに除外しました:

# System:
exclude /dev/*
exclude /proc/*
exclude /sys/*
exclude /tmp/*
exclude /run/*
exclude /mnt/*
exclude /media/*
exclude /lost+found

# Application:
exclude /*.pyc
exclude /*.pyo

復元されたシステムを損なうことなく、他のどのエントリを除外リストに追加できるのでしょうか。 「一般的な」Linuxシステムについて話すと、さらにglob拡張、一時ディレクトリ、キャッシュなどを提案できますか?安全に除外できますか?

10
Paolo

まず、rsyncのinclude/exclude構文を少し読んでください。あなたがやりたいことは**グロブより*グロブを使用するほうが良いという感じがします。 (**は任意の数のエントリに展開されますが、*は単一のエントリにのみ展開され、複数のdirectoryエントリと一致する可能性があります。詳細は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 / ./

それ以外はほとんどありません。はい、それは私が厳密に必要なものよりも少し多くコピーする可能性があることを意味します、しかしそれはエファーマルとして意図されていないものがコピーされることを保証します rsyncのハードリンクから重複への動作を使用するrsnapshotこれに対するコストは最初の実行時です。その後、適切なサイズ(合計データセットサイズと比較して)のバックアップターゲットの場所があると仮定すると、時間またはディスク領域の追加はほとんど必要ありません。/backupの内容は除外します。これは、バックアップターゲットファイルシステムをマウントする場所だからです。それを除外しないと、バックアップをそれ自体にコピーする状況になります。ただし、単純にするために、ベアメタルに復元する必要がある場合は、マウントポイントを保持したいと思います。

私の場合、one_fs 1;を適切に使用することもできません。私は、現在〜40のファイルシステムでZFSを実行しています。これらすべてを明示的にリストすると、メンテナンスの悪夢になり、ZFSファイルシステムでの作業が必要以上に複雑になります。

上記およびそれ以降に除外したいもののほとんどはとにかくディストリビューションに依存するため、一般的な答えを出すことは事実上不可能です。そうは言っても、/ varの下にいくつかの候補が見つかる可能性があります。

11
a CVn

あなたがしようとしていることのほとんどは、おそらくone_fs設定を使用するだけで達成できるでしょう。バックアップに含めるファイルシステムを設定し、その設定を使用して残りを無視します(procsysdevなど)。破損したファイルシステムをバックアップしていない限り、そのディレクトリは常に空であるため、/lost+foundを含めます。その場合、fsckで復元したもののバックアップが必要になる可能性があります。また、.pyc.pyoは、そもそもルートディレクトリにあるべきではないので、これらの行も削除します。 /tmp/var/tmpは、バックアップから確実に除外できるデータを含む「汎用」システム上の唯一の残りのパスについてです。だから多分次のようなことを試してください:

one_fs 1

exclude /tmp/
exclude /var/tmp/
4
depquid

パッケージリスト、/ etc、/ homeの内容、および/ varやその他のユーザー/システムデータを用意する方がよいと思います。通常は、パッケージを再インストールして作業構成をコピーして戻す方が高速です。

1
Sean Perry