Compreendendo a saída de --info = progress2 do rsync

72

Se eu correr rsynccom --info=progress2, recebo uma saída como

105.45M  13%  602.83kB/s    0:02:50 (xfr#495, ir-chk=1020/3825)

Mas o que significam os números únicos? Não encontrei uma entrada correspondente na página de manual.

  • O primeiro número parece ser a quantidade de dados processados ​​(os bytes reais copiados e os ignorados, porque eles já existiam no local de destino), certo? Parece não ser o número de dados transferidos, porque aumenta mais rapidamente do que a minha conexão à Internet ...
  • A porcentagem se refere à quantidade de dados ou ao número de arquivos a serem copiados? Considera arquivos excluídos e arquivos que já estão atualizados no local de destino?
  • O tempo na terceira posição parecia uma estimativa de tempo para conclusão, mas quando eu tentei, ele saltou entre algumas horas e alguns segundos. A que se refere e como é calculado?
  • O que significam os dois últimos números?
muffel
fonte
11
Você já experimentou a manpágina ( OPÇÕES > --progress)?
11135 don_crissti
11
consulte unix.stackexchange.com/questions/231647/… onde é resolvido.
shirish 23/09/2015

Respostas:

90
105.45M 13% 602.83kB/s 0:02:50 (xfr#495, ir-chk=1020/3825)

Significa que:

  • Até agora, o receptor / destino reconstruiu 105,45 megabytes (ou 13% ) dos aproximadamente 811,15 megabytes (100%) dos arquivos do remetente / origem.
  • Esses arquivos estão sendo reconstruídos a uma taxa de 602,83 kilobytes por segundo e essa operação de transferência de dados até agora levou 2 minutos e 50 segundos (tempo decorrido).

Além disso, xfr # 495 significa que atualmente o 495º arquivo está sendo transferido, enquanto ir-chk = 1020/3825 indica que, de um total de (até agora) 3825 arquivos digitalizados recursivamente (detectados), até o momento 1020 deles ainda estão para ser verificado / verificado.

Isso significa que, se a verificação detectar, por exemplo, mais 100 arquivos a serem verificados, os dois lados aumentarão em 100 (então será lido ir-chk = 1120/3925 ). Após a verificação de todos os arquivos (detectados pela verificação de recursão incremental), o número no lado direito da barra permanecerá o mesmo até o final de todo o processo, enquanto o número no lado esquerdo da barra começará a diminuir à medida que mais e mais arquivos são verificados (verificados). Além disso, devido ao final da recursão, ir-chk mudará para to-chk, indicando que a verificação de recursão incremental terminou a verificação (operação de detecção de arquivo). Ainda assim, como os arquivos continuarão sendo verificados / verificados até que estejam todos, o número de arquivos ainda a serem verificados / verificados (lado esquerdo da barra) diminuirá até que esse número se torne zero (indicando o final do processo de verificação de arquivos) .

Seja N o número total real de arquivos a serem verificados / verificados, quando todo o processo terminar, você verá:

to-chk=0/N

... o que significa que não há nenhum arquivo a ser verificado / verificado, de um total de N arquivos que foram detectados pela verificação de recursão incremental.

Sobre o ir-chk (da página de manual do rsync):

Em uma varredura incremental de recursão, o rsync não saberá o número total de arquivos na lista de arquivos até atingir o final da varredura, mas como começa a transferir arquivos durante a varredura, exibirá uma linha com o texto " ir-chk "(para verificação de recursão incremental) em vez de" to-chk "até o ponto em que ele conhece o tamanho completo da lista, quando passará a usar" to-chk ". Assim, visualizar "ir-chk" permite que você saiba que a contagem total de arquivos na lista de arquivos ainda aumentará (e cada vez que isso ocorrer, a contagem de arquivos deixados para verificação aumentará pelo número de arquivos adicionados a a lista).

Yuri Sucupira
fonte
4
Uma pequena correção: o 2:50 não é um ETA - é o tempo decorrido até agora.
sneak
4
@YuriSucupira Minha resposta é a esse comentário. Costumo usar sempre --no-inc-recursive, mas não é disso que estou falando. O tempo de entrada da ETA progress2é baseado no total de dados (conhecidos) e no tempo decorrido; não é por arquivo (mas pisca o valor decorrido no tempo de um arquivo para uma marca na conclusão de um único arquivo). Havia um bug envolvendo este em um ponto que faria isso menos clara, embora eu não tenho certeza qual a versão que está em
Izkata
2
@Izkata Lembro-me de testar o rsync nessa época (17 de julho de 2016), antes de fazer qualquer declaração aqui, apenas para garantir que o ETA fosse por arquivo, em vez de global, e fiquei "convencido visualmente" de que era um arquivo ETA. Eu estava usando o XUbuntu 14.04 (não me lembro qual era a versão rsync). De qualquer forma, instalei o XUbuntu 16.04 (vem com o rsync 3.1.1-3ubuntu1) há alguns meses e posso (visualmente) confirmar que rsync -a --info=progress2 /src /dest, de fato, me dá tempo total alternado com o ETA global , em vez do ETA por arquivo. Isso é estranho e novo para mim, mas você está certo.
Yuri Sucupira 17/10
4
@wingedsubmariner Enquanto estiver copiando um arquivo - digamos file1-, o rsync mostra o ETA global (atual) global para todo o processo de cópia. Então, quando termina a cópia file1, o rsync mostra o tempo decorrido global (atual) e começa a copiar o próximo arquivo - digamos file2- -, mostrando assim o ETA global (atual) novamente, até que o processo de cópia file2termine e depois o rsync mostra o novo tempo decorrido total (incrementado). É por isso que você vê esses "saltos": é porque você vê um ETA global (total) decrescente alternando com o crescente tempo total (total) decorrido.
Yuri Sucupira 17/10
2
@ijoseph Sim, a página de manual menciona apenas o comportamento da ETA. Essa é uma das razões prováveis ​​pelas quais tantas pessoas se sentem confusas sobre o comportamento da interface do usuário durante o processo de reconstrução. Eu próprio tive que prestar muita atenção a esse processo por algum tempo até finalmente revelar seus "mistérios". :)
Yuri Sucupira