Como encontrar rapidamente os maiores arquivos/diretórios que diferem entre dois diretórios que deveriam ser idênticos no Linux?

Como encontrar rapidamente os maiores arquivos/diretórios que diferem entre dois diretórios que deveriam ser idênticos no Linux?

Eu soutentando sincronizar dois discos rígidos. Achei que a maioria das pessoas que não querem perder nenhum dado e não usam RAID usariam esse método para que houvesse uma GUI funcionando bem. Esse não parece ser o caso e no Linux eu só encontrei a GUI Grsync que pode fazer isso, mas como ela não pode copiar arquivos de propriedade do root, ainda tive que executar este comando rsync no console:

sudo rsync -r -t -p -o -g --delete -l -s /media/veracrypt1 /media/veracrypt2
Basicamente significacopie tudo como está na unidade original e exclua os arquivos da unidade de destino que foram excluídos na unidade de origem. Pretendo clonar a unidade para que seu conteúdo seja 100% exatamente idêntico e alguns parâmetros ainda possam estar faltando no comando. Ambas as unidades ext4 são totalmente criptografadas com VeraCrypt e são exatamente do mesmo modelo (também do mesmo tamanho de armazenamento). Estou usando o Debian12/KDE.

Meu problema é queele sempre aborta antes de terminar a cópia porque a unidade de destino está cheia, o rsync mostra este erro:

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)

Mas não deve estar cheio porque lsblk -fmostra que a unidade de origem está abaixo de 95% FSUSE% com muitos GBs livres.

Já tentei excluir arquivos grandes no disco de destino e executá-lo novamente com --exclude-from='./exclude-file.txt' --delete-excludedadição para excluir alguns arquivos grandes e var/spool/que var/cache/estão em algum lugar em um diretório de um backup de partição do sistema feito com BackInTime. Também alterei o espaço em disco reservado raiz de 5% para 1% com sudo tune2fs -m 1 /dev/mapper/veracrypt2o qual anteriormente fazia com que ele fosse exibido0B disponível mesmo após a exclusão de arquivos grandes. Ainda não funciona.

Como posso descobrir rapidamente quais diretórios diferem em tamanhopara que eu possa tentar encontrar a causa deste problema?

No problema de espaço em disco não liberado, um usuário sugeriu a execução de comandos como sudo du -sk /media/veracrypt2/*/* > ./before_deleting_files.txtcomparar o espaço em disco, mas isso apenas mostra 4alguns arquivos e diretórios e leva muito tempo para carregar cada comando.

Estou procurando uma maneira que não demore muito para digitalizar, não tenha outros problemas que devam ser resolvidos primeiro e, idealmente, seja 1) algo gráfico dinâmico como Mapa de disco gráfico (gdmap) onde se pode ver (em neste caso também compare) o tamanho da navegação visual e dinâmica ou 2) algo que cria um relatório que simplesmente lista quais diretórios diferem.

Responder1

Você pode redirecionar a saída de tree -d --du disk1e tree -d --du disk2para um arquivo cada e depois diferenciá-los ...

Para evitar discrepâncias do rsync:

No meu comentário acima, fiquei tão completamente preso à complexidade geral do sistema que você descreveu que nem olhei atentamente para a sua rsyncinvocação.

Isso precisa ser

sudo rsync -r -t -p -o -g --delete -l -s /media/veracrypt1/ /media/veracrypt2

Não

sudo rsync -r -t -p -o -g --delete -l -s /media/veracrypt1 /media/veracrypt2

Observe a barra final em /media/veracrypt1/.

informação relacionada