Preciso copiar um diretório muito grande (falando em terabytes aqui) e quero monitorar o progresso.
Eu descobri que pv
é um bom utilitário, mas como posso usá-lo para copiar diretórios recursivamente? ( pv src > dst
não funciona porque são diretórios)
PS: rodando no OS X Mountain Lion, pv
foi instalado a partir de portas Mac
Você pode usar
tar
oupax
oucpio
:fonte
v
aotar
comando para ver os nomes dos arquivos.tar cf -
gera um fluxo que contém os arquivos e seus metadados, que é alimentado por um canal para pv, que o alimenta intocado para o outrotar
enquanto imprime uma indicação de progresso, e o outrotar
extrai os dados nesse fluxo. Todos os três comandos são executados simultaneamente e processam os dados à medida que chegam, não há nada armazenado no disco, não há nada armazenado na memória além dos buffers de pipe e dos buffers internos dos comandos, que representam apenas alguns kilobytes.pv
não tem como saber quantos dados existem para transferir. Se você tem uma estimativa desse montante, você pode passá-lo para ele com a-s
opção (GNUdu -sb src
iria dar-lhe uma boa aproximação se os arquivos são grandes o suficiente)Alcatrão.
Exemplo:
fonte
Aqui estão alguns comandos para copiar diretórios com informações de progresso.
Se houver muitos arquivos pequenos:
Isso relatará o progresso com base no número de arquivos que são copiados.
Você pode redirecionar para
/dev/null
se não precisarlogfile
.Use o seguinte comando para obter
filecount
:Se houver alguns arquivos enormes:
Isso relatará o progresso com base nos bytes que são copiados.
targetdir
deve existir.Use o seguinte comando para obter
size
:Se você deseja usar o rsync:
Obtenha
filecount
como mostrado acima.Se você estiver copiando no mesmo sistema,
rsync -a
é praticamente o mesmo quecp -a
. As vantagens do rsync são quando você está copiando pela rede ou se está atualizando (ou comparando) uma cópia anterior.Veja aqui para mais detalhes:
fonte
Você pode fazer um
du -b /directory/
na origem e no destino enquanto um comando de cópia normal estiver em andamento e comparar os dois. Isso é igualmente eficaz e não atrasa o processo de cópia, empurrando-o através de um cano.fonte
fonte