ソースディレクトリを更新するときにtarを使用しても安全ですか?

ソースディレクトリを更新するときにtarを使用しても安全ですか?

と同じ質問をする必要があります。これ

tarディレクトリを使用してバックアップする場合

  1. 新しいファイル/ディレクトリが作成されています。次へ追加

  2. 現在のファイル/ディレクトリは次のとおりです。編集済みそして削除済み

安全な結果が期待できますか?

渡す安全結果私の言葉は:

  1. tarソースディレクトリ/サブディレクトリの内容を台無しにしません。
  2. tarアーカイブを構築すると、見つかったとおりにアーカイブに追加されます。
  3. 説明された変更が発生した場合でも、成功信号が表示されます。

ベストアンサー1

1. tarはソースディレクトリ/サブディレクトリの内容を台無しにしません。

更新アクセス時間を台無しに計算しない限り、これは本当です。それ以外のtarはソースツリーで何も変更しません。

2. アーカイブを構築すると、見つかった tar がアーカイブに追加されます。

実際に「今」には価値あるものがあります。 tarがソースツリーを読み込んでいる間に変更が発生した場合、アーカイブに含まれる内容は多少予測できません。特に、tarがファイルを読み込んでいる間にファイルが変更された場合、tarがある時点で行ったようにファイルのコピーを書き込むという保証はありません。たとえば、次のような場合があります。

  • tarはのfoo0〜4095バイトを読みます。
  • 一部のプログラムは、単一のfoo書き込み操作でバイト 4095-4096 を変更して書き込みます。
  • tarはfoo.tarファイルの4096〜8191バイトを読み取ります。

fooアーカイブのコンテンツは、既存のコンテンツも新しいコンテンツでもなく、これら2つが混在した形です。もう1つの例は、tarがソースツリーを読み込んでいる間にファイル名を変更すると、tarがそのファイルを完全にスキップできることです。

3. 説明した変更が発生した場合でも、成功が表示されます。

いいえ、必ずしもそうではありません。 tarがソースを読み込んでいる間にソースが変更されたことを検出すると、文句を言って失敗状態を返すことができます。特に、tarはコンテンツを書き込む前にファイルサイズをアーカイブに書き込む必要があるため、最初に各ソースファイルのサイズを読み取ります。レコードサイズに達する前にファイルの終わりに達すると、回復するための確実な方法がないため、少なくともこの場合、すべてのtar実装で苦情が発生します。

安全にバックアップするには、ファイルシステムまたはボリュームレベルのツールを使用してスナップショットを撮ってバックアップします。

おすすめ記事