GNU/Linux >> Linux の 問題 >  >> Linux

ソースディレクトリが安全に更新されている間にTarを使用していますか?

これに似た質問をしなければなりません。

tarを使用してディレクトリをバックアップするシナリオ および

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

  2. 現在のファイル/ディレクトリは編集中です および削除

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

安全な結果 私は次のような意味です:

  1. tar ソースディレクトリ/サブディレクトリに何かを台無しにすることはありません
  2. tar アーカイブを構築する瞬間に見つかったアーカイブに追加されます
  3. 説明されている変更が発生した場合でも、成功信号が送信されます

承認された回答:

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ゲストは解像度を自動調整しませんか?
Linux
  1. [Linux]:「tar」シェルコマンドを使用するときにディレクトリを除外する方法

  2. Hp-ux 9:Tarを使用したバックアップファイルシステム?

  3. Linuxでディレクトリをgzipで圧縮する方法

  1. .tar.gz ファイルの作成時にディレクトリを除外する

  2. Linux で C を使用してディレクトリが空かどうかを確認する

  3. smbclient を使用してディレクトリを再帰的にダウンロードするにはどうすればよいですか?

  1. フォルダをMvとマージしますか?

  2. cd 使用時の / の使用

  3. 正規表現を使用して TAR アーカイブからファイルを除外する方法は?