これに似た質問をしなければなりません。
tar
を使用してディレクトリをバックアップするシナリオ および
-
新しいファイル/ディレクトリが追加されています
-
現在のファイル/ディレクトリは編集中です および削除
安全な結果を期待できますか?
安全な結果 私は次のような意味です:
-
tar
ソースディレクトリ/サブディレクトリに何かを台無しにすることはありません -
tar
アーカイブを構築する瞬間に見つかったアーカイブに追加されます - 説明されている変更が発生した場合でも、成功信号が送信されます
承認された回答:
1.tarはソースディレクトリ/サブディレクトリに何かを台無しにしません
更新アクセス時間を台無しとして数えない限り、本当です。それ以外は、tarはソースツリーの何も変更しません。
2.アーカイブを構築する瞬間に見つかったtarがアーカイブに追加されます
確かに、「その瞬間」の価値については。 tarがソースツリーを読み取っているときにソースツリーが変更された場合、アーカイブに含まれる内容は多少予測できません。特に、tarがファイルを読み取っている間にファイルが変更された場合、tarがファイルのコピーをある時点でのように書き込むという保証はありません。たとえば、次のことが可能です。
- tarは、
foo
の0〜4095バイトを読み取ります 。 - 一部のプログラムは
foo
に書き込みます 、1回の書き込み操作でバイト4095〜4096を変更します。 - tarは、
foo
のバイト4096〜8191を読み取ります 。
次に、foo
のコンテンツ アーカイブには、古いコンテンツでも新しいコンテンツでもありません。この2つが混在しています。もう1つの例は、tarがソースツリーを読み取っているときにファイルの名前が変更された場合、tarがそのファイルを完全にスキップする可能性があることです。
3。説明されている変更が発生した場合でも、成功シグナルが発行されます
いいえ、必ずしもそうとは限りません。 tarは、ソースの読み取り中にソースが変更されたことを検出すると、文句を言って失敗ステータスを返す可能性があります。特に、tarはコンテンツを書き込む前にファイルのサイズをアーカイブに書き込む必要があるため、最初に各ソースファイルのサイズを読み取ります。記録されたサイズに達する前にファイルの終わりに達した場合、回復する明確な方法がないため、少なくともその場合、tarの実装は文句を言う必要があります。
安全にバックアップを作成するには、ファイルシステムレベルまたはボリュームレベルのツールを使用してスナップショットを作成し、スナップショットをバックアップします。
関連:Linux –Ubuntuホスト上のvirtualboxKALIゲストは解像度を自動調整しませんか?