![Как быстро найти самые большие файлы/каталоги, которые различаются между двумя каталогами, которые должны быть идентичны в Linux?](https://rvso.com/image/231064/%D0%9A%D0%B0%D0%BA%20%D0%B1%D1%8B%D1%81%D1%82%D1%80%D0%BE%20%D0%BD%D0%B0%D0%B9%D1%82%D0%B8%20%D1%81%D0%B0%D0%BC%D1%8B%D0%B5%20%D0%B1%D0%BE%D0%BB%D1%8C%D1%88%D0%B8%D0%B5%20%D1%84%D0%B0%D0%B9%D0%BB%D1%8B%2F%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B8%2C%20%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B5%20%D1%80%D0%B0%D0%B7%D0%BB%D0%B8%D1%87%D0%B0%D1%8E%D1%82%D1%81%D1%8F%20%D0%BC%D0%B5%D0%B6%D0%B4%D1%83%20%D0%B4%D0%B2%D1%83%D0%BC%D1%8F%20%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0%D0%BC%D0%B8%2C%20%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B5%20%D0%B4%D0%BE%D0%BB%D0%B6%D0%BD%D1%8B%20%D0%B1%D1%8B%D1%82%D1%8C%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%87%D0%BD%D1%8B%20%D0%B2%20Linux%3F.png)
Япытаюсь синхронизировать два жестких диска. Я думал, что большинство людей, которые не хотят терять данные и не используют RAID, будут использовать такой метод, чтобы был хорошо работающий GUI. Похоже, это не так, и в Linux я нашел только Grsync GUI, который может это сделать, но поскольку он не может копировать файлы, принадлежащие root, мне все равно пришлось запустить эту команду 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
показывает, что исходный диск заполнен менее чем на 95% FSUSE% и при этом свободно много ГБ.
Я уже пробовал удалять большие файлы на целевом диске и перезапускать его с --exclude-from='./exclude-file.txt' --delete-excluded
добавленным, чтобы исключить несколько больших файлов и var/spool/
которые var/cache/
находятся где-то в каталоге резервной копии системного раздела, сделанной с помощью BackInTime. Я также изменил корневое зарезервированное дисковое пространство с 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
в файл, а затем сравнить их...
Чтобы избежать расхождений с 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/
.