次のオプションを使用して、$HOME
外部ストレージドライブにディレクトリバックアップを作成しています。rsync
--archive --xattrs --hard-links
新しくバックアップした後、du
一部のバックアップディレクトリは元のディレクトリとは異なるサイズで報告されます。たとえば、対応するコマンド出力のバックアップコピーdu -bs ~/.mozilla/firefox/<profile>/datareporting/archived/2024-01/
出力です。3198125
3194029
ただし、を追加して出力ファイルサイズを*
実行して合計することができます。バックアップコピーに対応するコマンドは同じ結果を提供します。du -bs ~/.mozilla/firefox/<profile>/datareporting/archived/2024-01/*
3165357
だから私の質問は次のとおりです。
rsync
すべてのデータをバックアップできませんでしたか~/.mozilla
?それとも私が間違って使っているのでしょうかdu
?du
バックアップコピーの.mozilla/firefox/<profile>/datareporting/archived/2024-01/
ファイルサイズは元のファイルとは異なりますが、ディレクトリに含まれるファイルのサイズは同じ理由は何ですか?- バックアップを誤って使用した場合、バックアップ
du
のサイズが元のディレクトリとまったく同じかどうかを正確に確認できますか$HOME
?
メモ:
shopt -s dotglob
報告されたサイズの違いに対してドットファイルが責任を負わないように設定しましたdu
。- 私の
$HOME
ファイルシステムはSSDにあり、バックアップドライブはHDDです。 - 両方のファイルシステム
ext4
。 - 私はDebian 12を使用しています。
ベストアンサー1
明確にするために、各質問に1つずつ答えていきます。
1. rsyncは~/.mozillaの下のすべてのデータをバックアップできませんか?それともduを間違って使用していますか?
提供された情報によると、rsync
失敗したバックアップデータがないようです。実際にディレクトリ内の個々のファイルのサイズを集計すると、元のファイルとバックアップファイルの合計が一致するため、rsync
すべてのデータが正常にコピーされていることを示します。ディレクトリ全体に報告された合計サイズとそのコンテンツの合計に表示される違いは、ファイルシステムがディレクトリメタデータとファイル自体にスペースを割り当てる方法の違いによるdu
ものです。ディレクトリとファイルが使用するスペースは、ファイルシステムのブロックサイズと割り当てに基づいて計算されます。これは、特に同じファイルシステムタイプ(ext4)を使用しても、異なるドライブ(SSDとHDD)間で異なる可能性があります。du
rsync
du
2. du looking.mozilla/firefox//datareporting/archived/2024-01/のバックアップコピーは元のファイルとサイズが異なりますが、レポートディレクトリに含まれるファイルのサイズはなぜ同じですか?
du
各ドライブのファイルシステムがディレクトリにスペースを割り当ててメタデータを保存する方法によって、ディレクトリ自体のサイズが異なって報告されます。各ファイルシステムは、ディレクトリメタデータとブロック割り当てを異なる方法で処理できるため、そのディレクトリのファイルサイズが同じであっても、報告されたディレクトリサイズがわずかに異なる場合があります。これは、ファイルシステムのブロックサイズ、ディレクトリ内のファイル数(ディレクトリサイズに影響を与えるメタデータストアのため)、ファイルシステム固有の最適化、またはメタデータ処理の違いなどの要因によって影響を受ける可能性があります。要約すると、ファイルのサイズが正確に一致すると述べたため、これはファイル自体が正しくバックアップされ、サイズの違いはディレクトリメタデータまたはファイルシステムの割り当ての違いに起因するという考えを強化します。
3.誤ってduを使用した場合は、バックアップが元の$ HOMEディレクトリとまったく同じサイズであるかどうかを正確に確認できますか?
特に、ディレクトリなどの重要なデータを処理するときにバックアップの完全性と完全性を正確に確認するために$HOME
サイズ比較を使用することは、上記の理由で最も信頼できる方法ではない可能性があります。du
代わりに、次のアプローチを試してください。
チェックサムの確認:
md5sum
または同じツールを使用して、sha256sum
元のディレクトリとバックアップディレクトリにあるファイルのチェックサムを作成し、これらのチェックサムを比較して一致することを確認できます。すべてのファイルを再帰的に処理するには、find、xargs、および選択したチェックサムツールを組み合わせて実行できます。# Generate checksums for the original directory find /path/to/original -type f -exec sha256sum {} + > original_checksums.txt # Generate checksums for the backup directory find /path/to/backup -type f -exec sha256sum {} + > backup_checksums.txt # Compare the checksum files diff original_checksums.txt backup_checksums.txt
コマンドに出力が表示されない場合は、
diff
すべてのファイルが完全に一致することを意味します。チェックサムモードの再同期化:
rsync
この-c
オプションを実行すると、サイズと変更時間の代わりにファイルの内容(チェックサム)を強制的に比較します。これは、すべてのファイルが正しくコピーされ、同じであることを確認するより信頼性の高い方法です。
これらの方法は、ディスクに割り当てられているスペースではなくファイルの内容に焦点を当てて、バックアップの整合性をより正確に確認できます。