Como usar o Pipe Viewer (pv) para medir o progresso da compressão?

1

Estou tentando acompanhar o andamento dos dados em um canal, especificamente em um script de inicialização grande para um servidor de minecraft. Como eu usaria o pv para obter uma leitura precisa do progresso?

Eu tentei o seguinte comando, em que $WORLDBACKUPSIZE é o tamanho da pasta a ser copiada, $path é o caminho do qual deve ser feito backup e $MCPATH/${WORLDNAME[$INDEX]} é a pasta que deve ser backup, exceto que pv pára na metade do caminho devido ao tamanho do tamanho da pasta e está contando apenas os bytes comprimidos que passam.

Eu quero contar os bytes que são comprimidos no comando tar, para que eu possa usar o tamanho original como a marca final do medidor de progresso. Simplificando, estou tentando colocar uma pasta e monitorar o progresso usando pv . O tamanho total que pv está usando para me informar uma porcentagem estimada é baseado no tamanho original, enquanto o tamanho que está medindo quando o comando tar está em execução é o tamanho compactado, portanto a barra de progresso para cedo com a porcentagem concluída em o fim, dependendo do tamanho da pasta comprimida em comparação com o tamanho da pasta original.

O comando

WORLDBACKUPSIZE='du -sk $WORLDSTORAGE/${WORLDNAME[$INDEX]} | cut -f 1'

é usado para medir a pasta que eu quero fazer backup.

O comando

tar -hcjf - $MCPATH/${WORLDNAME[$INDEX]} | pv -reps ${WORLDBACKUPSIZE}k > $path

é usado para medir o progresso. Como eu reorganizaria isso para que eu esteja medindo o progresso pelo número de bytes que são levados para o comando tar e não pelo número que é colocado?

    
por Kevin Panko 21.11.2012 / 04:21

1 resposta

1

Você pode começar com um simples (mas não tão grande e talvez um inútil uso do gato):

cat "$MCPATH/${WORLDNAME[$INDEX]}" \
| pv -reps "${WORLDBACKUPSIZE}k" \
| tar -hcjf - > $path/somename

A última linha poderia ser tar -hcjf $path/somename , mas mantive-a perto do original, para indicar que talvez esteja faltando um nome, a menos que "caminho" contenha um caminho E um nome de arquivo já.

    
por 22.11.2012 / 12:54