Use o visualizador de pipe ao transmitir o diretório pelo tar

1

No momento, estou transmitindo um diretório por SSH após compactá-lo por meio do tar:

tar cz /path/to/foo | pv | ssh HOSTNAME 'tar xmz && some-cool-command'

O problema é que pv não sabe o tamanho total do fluxo, portanto ele não pode me mostrar uma barra de progresso adequada. Eu poderia configurá-lo para o tamanho de /path/to/foo , mas isso não seria correto, pois o fluxo é compactado.

Existe uma maneira de contornar isso e obter pv para mostrar uma barra de progresso adequada?

    
por Christoffer Reijer 15.03.2016 / 21:01

1 resposta

0

Resposta curta, não. Você não sabe o quanto o tar ( gzip ) comprimirá seu (s) arquivo (s), até que você faça isso.

Você pode compactar os arquivos em sua unidade com antecedência e mostrar apenas a barra de progresso da transferência:

 tar cz /path/to/foo > /tmp/ar && pv /tmp/ar | ssh HOSTNAME 'tar xmz && some-cool-command'

mas não acho que seja o que você deseja alcançar. Ou você pode ficar satisfeito com o tamanho aproximado com base no arquivo original, como você propôs.

    
por 15.03.2016 / 23:30