私たちは、Debianサーバー上のすべてのバックアップを取りたいです。Debianサーバーはシャットダウンせずに、世界の反対側(Linodeがホスト)でリモートで実行されています。
このシステムは、シェル、電子メール、XMPP /韻律、Webを実行しており、いくつかの簡単なnginxセットアップがあります。
安全のために、これらのものに関連するファイルをバックアップしたいと思います。たとえば、ユーザーが自分のホームディレクトリに保存したファイル。
/ etcファイルごとに既存のセットアップを正確にコピーする必要はありません。代わりに、そもそもバックアップを行っている理由は、すべてを新しいセットアップに移動できるようにするためです(Linode上にある新しいバージョンのDebian)。
Linodeはバックアップサービスを提供しています。しかし、長期的には、ここでバックアップが行われたり、何か他の奇妙なことが発生した場合に備えて、独自のバックアップも必要です。
この質問が存在する理由は、過去にバックアップを作成しようとしたときに、次の2つの間違いのいずれかを繰り返したためです。
- 「OK、
/
その下のすべてをコピーします」に行った後、コピー先のドライブが/ media / backupの下にマウントされ、再帰的にコピーされていたため、奇妙な無限ループで立ち往生しました[obv rsyncなどでバックアップするため、ここでは当てはまらない特定の問題]または/ procや/ varなどの「生きている」ものをコピーしようとして動けなくなってしまった。または - 「OK、必要なものを必要最小限にとどめます。うーん、全員のホームディレクトリ、Webサーバーのディレクトリ(すべて下
/var
)を取得/etc
し、/ var /の下にあるすべての古いメールのコピーを取得します。vmail」を使用して、ファイルのアクセス許可またはタイムスタンプを常にめちゃくちゃにしました(今回はUNIXファイルをFATドライブにバックアップしないようにします)または何かを忘れました(「ああ、シュート、/ usr /にカスタムスクリプトがありました他の場所に保存したことのないローカル/ビン、それらを取得するのを忘れてしまった、今はなくなっていると思います」)。
したがって、ドライブ全体をまっすぐにコピーすると落とし穴が生じ、ディレクトリを選択的にコピーすると落とし穴が生じます。私はそれを正しく行う方法を知りたいです。
サーバー障害の質問完全なバックアップシステムには何が必要ですか?哲学とグッドプラクティスをカバーしていますが、私はこれらのより具体的な詳細を探しています:
- コピーする必要があるディレクトリと除外するディレクトリ
- タイムスタンプ、所有者、グループなど、どのファイル属性を提示する必要がありますか?←質問のこの半分に自分で答えることができる
rsync -HXaz
と思います。-z
本当に「私は何を守るか」で、質問に関連していないOBV
を使用するなどdd
、私が見る多くのバックアップのアドバイスは、ドライブがマウントされておらず、使用されていないことを前提としているようです。しかし、/ procのような「生きている」ディレクトリと、/ varの下のサブディレクトリ(ただし、/ varの下にあるもののいくつかは間違いなく保持する必要があるとわかっています)および/ mount を除外することは想定されていませんか?この状況で考えなければならないことは他にありますか?それから、rsyncでたくさんの--exclude
フラグを使ってそれを切り取ることができると思います。
または、より良いアイデア、特にFOSSフレンドリーなアイデアはありますか?
cp -r -a
ファイルをコピーするときに(ターゲットファイルシステムがサポートするものに基づいて)できるだけ多くのファイル属性を保持します。-a
フラグが指示しcp
た属性を維持するために。ネットワークまたは必要な属性をサポートしていないファイルシステムを介してコピーするtar -c
ために、私のために常に機能しましたが、カバーしていないエッジケースがいくつかあると信じtar
ています両方のシステム。そうは言ってtar
も、明らかな問題なしに使用して(マウントされていない)Linuxシステム全体をコピーしました。