誰かが権限について同様の質問をしたことを知っていますが、どのような圧縮またはアーカイブが各ファイルとディレクトリの権限とファイル所有者を保持しますか?
tar.gz
フォーマットを悩んでいますが、これは適切ですか?
37GBのファイルとディレクトリを別のサーバーに移動し、すべてが圧縮されていない状態とまったく同じである必要があります。
ベストアンサー1
2つの既存のアーカイブツールアスファルトそしてCPIO所有権とUnix権限(ユーザー/グループ/その他)はもちろん、タイムスタンプも保存します(cpioの使用、-m
抽出時に必ず渡す)。あの人が好きじゃないならあいまいな構文1. POSIX代替品が利用可能公園(pax -w -pe
)これらはすべて圧縮されていないアーカイブを出力します。アーカイブを圧縮するgzip
か、同じツールにパイプしますxz
(GNU tarには圧縮オプションがあります)。ユーザーとグループは名前で識別されます。 GNU tarにはオプションがあります。
これらのツールのいずれも、ACL、機能、セキュリティコンテキスト、またはその他の拡張属性などの最新の機能を維持しません。
一部の tar バージョンでは ACL を保存できます。バラよりファイルをバックアップしてACLを保存するには、何を使用する必要がありますか?GNU tar は--acls
アーカイブを作成し、解凍時に両方渡します。
次のsquashfsファイルシステムMike Selfが提案した、SELinux コンテキストを含む機能および拡張属性を保存しますが、ACL は保存しません。 (あなたはあまりアンティーク版.) ACLとセキュリティコンテキストの両方がある場合は、squashfsファイルシステムを使用し、元のファイルシステムのルートで実行してACLを保存しgetfacl -R
ますsetfacl --restore
。
ACL、1秒未満のタイムスタンプ、拡張属性、ファイルシステム固有の属性を含むすべてを保存するには、ファイルシステムを複製するだけです。このアプローチの欠点は、圧縮されたコピーを直接便利に作成できないことです。ファイルシステムを複製する究極の方法は、ブロックデバイスをコピーすることです。これは空き領域をコピーするので無駄です。または、すべてのファイルを保存するのに十分な大きさのファイルシステムを作成し、GNU coreutilsのcp -a
コマンドを使用してcp
ファイルをコピーします。 GNU cpは、拡張属性やACLなどの非伝統的な機能を含む、すべてをコピーするのに非常にうまくいきます。
1これは実はちょっと誇張された表現です。