quinta-feira, 9 de dezembro de 2010

Monitorando o tráfego através de uma canalização

O Pipe Viewer (pv) é uma ferramenta de terminal para monitorar o progresso do tráfego de dados através de uma canalização entre dois processos. Ao ser inserido na linha de comando, o pv pode mostrar uma indicação visual do quanto já foi transferido, tempo decorrido, taxa de transferência, barra de progressão, porcentagem e tempo estimado para término.

Por exemplo, em um cenário onde um comando faz a cópia de um dispositivo de armazenamento para um arquivo imagem, como mostrado a seguir:

# dd if=/dev/sdb of=arquivo.dd

Com o pv podemos monitorar o tráfego de dados acrescentando-o na linha de comando do dd, que agora está duplicado:

# dd if=/dev/sdb | pv -b -t -r -p -e -s 1041760256 | dd of=arquivo.dd

Ou simplesmente, já que as opções ficam ativas por padrão:

# dd if=/dev/sdb | pv -s 1041760256 | dd of=arquivo.dd

O tamanho total do dispositivo de armazenamento pode ser obtido pelo comando "fdisk -l". O exemplo a seguir contém todos os comandos em uma única linha:

# dd if=/dev/sdb | pv -s `fdisk -l /dev/sdb | head -2 | tail -1 | awk '{print $5}'` | dd of=arquivo.dd

O Pipe Viewer pode ser utilizado em canalização com qualquer comando. Veja um uso da ferramenta pv com o gzip, por exemplo, se quisermos compactar o nosso arquivo imagem podemos monitorar o progresso:

# pv arquivo.dd | gzip > arquivo.dd.gz

Mais um exemplo para uso com o netcat, monitorando a transmissão do arquivo:

# cat arquivo.dd | pv -s 1041760256 | nc -w 1 192.168.1.133 3000

Muitas ferramentas de linha de comando no sistema Linux não mostram a progressão, desta forma a ferramenta pv torna-se um bom complemento. Para mais informações, a página do Pipe Viewer está neste endereço: http://www.ivarch.com/programs/pv.shtml

Nenhum comentário:

Postar um comentário