Faça o rsync mostrar o progresso na comparação da soma de verificação, mesmo que nenhuma diferença seja encontrada

Faça o rsync mostrar o progresso na comparação da soma de verificação, mesmo que nenhuma diferença seja encontrada

Eu executo este comando para verificar a identidade de duas pastas e coloco todas as diferenças em um arquivo de log:

rsync -av --delete --checksum --dry-run --stats --itemize-changes --out-format='%t %i %f ' SOURCE DESTINATION | tee log.txt

Se não houver diferença entre os arquivos que você está comparando, o rsync não mencionará nada exceto isto até o final do trabalho:

enviando lista de arquivos incremental

Seria bom obter algumas informações sobre onde está o rsync. Especialmente se você comparar muitos arquivos. É possível fazer o rsync imprimir todas as verificações no terminal e deixar apenas as diferenças no arquivo de log?

PS: --info=progress2não ajudou.

Responder1

[Vejo que você deseja uma lista dos arquivos dos quais o rsync está calculando a soma de verificação, à medida que essas somas de verificação estão sendo calculadas. Pela minha leitura, não parece que esteja disponível. A seguir, forneço algumas informações mais gerais sobre como os relatórios rsync funcionam em relação a como eles relatam o progresso, conforme eu o entendo.]

Se houver arquivos para transferir, a --info=progress1opção ("progresso por arquivo") fornecerá algumas informações sobre o progresso. À medida que cada arquivo é transferido, você terá algo parecido com isto:

MD5SUMS.gnome
        141   0%    0.00kB/s    0:00:00 (xfr#1, to-chk=11/13)
ParrotSecurity.lnk
        179   0%   37.11kB/s    0:00:00 (xfr#2, to-chk=10/13)
SHA256SUMS.mate
        486   0%  336.91kB/s    0:00:00 (xfr#3, to-chk=9/13) 
SHA256SUMS.mate.gpg
      1,419   0%    1.22MB/s    0:00:00 (xfr#4, to-chk=8/13)
SHA256SUMS.ubuntu
      1,994   0%    1.77MB/s    0:00:00 (xfr#5, to-chk=7/13)
SHA256SUMS.ubuntu.gpg
      2,927   0%    2.66MB/s    0:00:00 (xfr#6, to-chk=6/13)

xferinforma qual arquivo está sendo transferido ( xfer#6é o 6º) e to-chk(digamos to-chk=6/13) informa que é o 6º de 13.

Observe que você não receberá isso --dry-runporque não há nada para transferir. (Você também pode obter essa saída com --progress, embora não esteja claro na página de manual e não irei verificar agora.)

Se você olhar --recursivena página de manual, verá que desde a versão 3.0.0, rsync -rverificará alguns diretórios antes de começar e continuará a verificá-los durante a transferência. Esta é uma varredura "recursiva incremental" e, nesse caso, você verá ir-chkem vez de to-chk. E o "denominador" ir-chkpode aumentar à medida que verifica progressivamente mais arquivos.

Se você não estava usando --recursive, a soma de verificação é feita primeiro para identificar todos os arquivos que precisam ser transferidos e depois eles são transferidos um por um. Isso acontecenãoParece que você pode obter qualquer tipo de relatório de progresso sobre a fase inicial em que as somas de verificação estão sendo calculadas, já que o rsync ainda não sabe quantos arquivos haverá ou qual o tamanho deles. Quanto a saber se você pode obter uma lista de nomes de arquivos à medida que suas somas de verificação são calculadas, pela minha leitura não parece ser assim. (Mas pode haver um truque interessante e é difícil provar algo negativo!)

informação relacionada