最近、いくつかのデータをアーカイブすることにしましたタールデータは同じフォルダの多数のバックアップで構成されているため、重複が多数含まれています。Tar にはインデックスがないため、重複が多数含まれるデータではうまく機能しないという記事を読みました。つまり、基本的に私の質問は、Tar はそのようなデータのアーカイブに適しているかどうかということです。
私が最も重視しているのは、アーカイブ内のすべての元のデータを保存することです。これには、すべてのファイルのタイムスタンプ(作成、変更、アクセス)が含まれます。
答え1
もちろん、Tar は、重複しているバックアップがいくつあっても、これらのバックアップをアーカイブできます。100 個の異なるフォルダーに abc.doc ファイルの重複が 100 個ある場合、100 回アーカイブされます。とはいえ、効率的ではありません。
バックアップ ツールがデータの重複を排除できる場合、100 個の同一ファイルを認識し、そのうちの 1 つをバックアップして、それを 99 回参照します。これらのバージョンの 1 つが変更されると、参照が削除され、個別にバックアップされます。
答え2
GNU タール
作成時間:
Linux は実際にはファイルの作成時間を記録しません。タイムスタンプはありますctime
が、作成時間と間違われることがありますが、これは実際には「inode の変更時間」です。つまり、ファイルまたはその権限、所有者などに最後に変更があった時間を記録します。つまり、 よりも頻繁に変更されますmtime
。ctime
スタンプはカーネルによって処理され、ユーザーが任意の値に設定することはできません (ただし、現在の時間に簡単にリセットできます)。
修正時間:
mtime
保存されているtar
アクセス時間:
tar
通常、元のファイルであってもアクセス時間が変更されます。--atime-preserve
フラグを使用してこれを防ぐことができます。また、権限 (およびディレクトリのソート順) を保持するタグも必要になる場合があります--preserve
。
tar
アーカイブされたファイルの atimes を保持できるかどうかはわかりませんが、次の方法で修正できます。
- 解凍
- 各ファイルで使用する
touch -a -d TIME FILE
(形式は時間[[CC]YY]MMDDhhmm[.ss]
) - 再タール塗り
tar --atime-preserve
警告:--atime-preserve
現在、 を使用すると atime が記憶されるため、読み取った後に保存できます。ほとんどのシステムでは、これにより ctime が変更され、他のソフトウェア (セキュリティ ソフトウェアなど) に干渉する場合があります。
その他のソフトウェア
rsync
(参照)この記事例えば)またはバージョン管理システム( などgit
)