![Linux 上で同一であるはずの 2 つのディレクトリ間で異なる最大のファイル/ディレクトリをすばやく見つける方法を教えてください。](https://rvso.com/image/231064/Linux%20%E4%B8%8A%E3%81%A7%E5%90%8C%E4%B8%80%E3%81%A7%E3%81%82%E3%82%8B%E3%81%AF%E3%81%9A%E3%81%AE%202%20%E3%81%A4%E3%81%AE%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E9%96%93%E3%81%A7%E7%95%B0%E3%81%AA%E3%82%8B%E6%9C%80%E5%A4%A7%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%2F%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%82%92%E3%81%99%E3%81%B0%E3%82%84%E3%81%8F%E8%A6%8B%E3%81%A4%E3%81%91%E3%82%8B%E6%96%B9%E6%B3%95%E3%82%92%E6%95%99%E3%81%88%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82.png)
私は2つのハードドライブを同期しようとしていますデータを一切失いたくないし、RAID も使用しないほとんどの人は、うまく機能する GUI があるように、このような方法を使用するだろうと思いました。しかし、そうではないようです。Linux では、それができる Grsync GUI しか見つかりませんでした。ただし、ルート所有のファイルをコピーできないため、コンソールでこの rsync コマンドを実行する必要がありました。
sudo rsync -r -t -p -o -g --delete -l -s /media/veracrypt1 /media/veracrypt2
それは基本的に元のドライブにあるすべてのものをそのままコピーし、ソースドライブで削除されたファイルをターゲットドライブから削除します。ドライブのクローンを作成してその内容が 100% 完全に同一になるようにするつもりですが、コマンドにまだいくつかのパラメータが欠けている可能性があります。両方の ext4 ドライブは VeraCrypt で完全に暗号化されており、まったく同じモデル (同じストレージ サイズ) です。Debian12/KDE を使用しています。
私の問題はターゲットドライブがいっぱいのため、コピーが完了する前に常に中止されますrsync は次のエラーを表示します:
rsync: [receiver] write failed on "/media/veracrypt2/file": No space left on device (28)
rsync error: error in file IO (code 11) at receiver.c(380) [receiver=3.2.7]
rsync: [sender] write error: Broken pipe (32)
lsblk -f
しかし、ソース ドライブの FSUSE% が 95% 未満で、多くの GB が空いているため、いっぱいになることはないはずです。
私はすでに、ターゲットディスク上の大きなファイルを削除し、 BackInTimeで作成されたシステムパーティションバックアップのディレクトリのどこかにある--exclude-from='./exclude-file.txt' --delete-excluded
いくつかの大きなファイルを除外するために を追加しvar/spool/
て再実行してみましvar/cache/
た。また、ルートの予約済みディスク領域を5%から1%に変更しました。sudo tune2fs -m 1 /dev/mapper/veracrypt2
これにより、以前は大きなファイルを削除した後でも0Bが利用可能。まだ通じません。
どのディレクトリのサイズが異なるかを素早く見つけるにはどうすればいいですかこの問題の原因を突き止めることができるでしょうか?
ディスク領域が解放されない問題では、ユーザーはsudo du -sk /media/veracrypt2/*/* > ./before_deleting_files.txt
ディスク領域を比較するなどのコマンドを実行することを提案しましたが、4
一部のファイルとディレクトリのみが表示され、各コマンドの読み込みに時間がかかります。
私が探しているのは、スキャンにそれほど時間がかからず、最初に解決しなければならない他の問題がなく、理想的には、1) サイズを視覚的に確認 (この場合は比較も) して動的に移動できるグラフィカル ディスク マップ (gdmap) のようなグラフィカルで動的なもの、または 2) 異なるディレクトリを単にリストするレポートを作成するもののいずれかです。
答え1
tree -d --du disk1
との出力tree -d --du disk2
をそれぞれファイルにリダイレクトして、それらの diff を取ることができます...
rsync との不一致を回避するには:
上記のコメントでは、あなたが説明したシステムの全体的な複雑さにすっかりとらわれてしまい、rsync
呼び出しの詳細を詳しく調べることさえしませんでした。
それは
sudo rsync -r -t -p -o -g --delete -l -s /media/veracrypt1/ /media/veracrypt2
ない
sudo rsync -r -t -p -o -g --delete -l -s /media/veracrypt1 /media/veracrypt2
末尾のスラッシュに注意してください/media/veracrypt1/
。