
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=progress2
nã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=progress1
opçã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)
xfer
informa 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-run
porque 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 --recursive
na página de manual, verá que desde a versão 3.0.0, rsync -r
verificará 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-chk
em vez de to-chk
. E o "denominador" ir-chk
pode 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!)