Header Ads

Como monitorar o progresso dos comandos do Linux (com pv e progresso)

Em vez de voar às cegas, use os comandos pv e de progresso do Linux para rastrear o progresso de um comando. Esses utilitários oferecem barras de progresso para comandos que normalmente não possuem nenhum. Você verá um tempo estimado até a conclusão também.

Se você estiver em um vôo de longo curso em uma aeronave sem telas de vídeo nos encostos dos bancos, não é Não é fácil saber até onde você está. Você sabe quando você decolou. Você sabe quanto tempo o voo deve durar. Mas como você sabe se está no caminho certo, no prazo ou atrasado? Se você não quiser assistir ao filme a bordo, geralmente pode alternar a tela do seu vídeo para mostrar um mapa com a posição da sua aeronave sobre ele. Você também obtém algumas estatísticas, como a hora prevista de chegada (ETA), o que é ótimo.

Iniciar um comando a partir da janela do terminal pode parecer um vôo de longa distância sem uma tela de vídeo. Você não tem nada para dar qualquer indicação se tudo estiver bem ou se o processo foi interrompido, nem quão perto da conclusão ele está. Um cursor piscante não é muito informativo.

Os comandos pv e de progresso fornecem algumas estatísticas e um pouco de feedback visual. Você pode ver o quão perto o processo está para ser concluído. Isso significa que você recebe um ETA para seus processos em execução. Comparado com olhar para um cursor, que ganha mãos para baixo.

Instalando pv

Você deve instalar pv.

Para instalar o pv no Ubuntu use este comando:

 sudo apt-get instalar pv 

Para instalar o pv no uso do Fedora este comando:

 sudo dnf instalar pv 

Para instalar o pv no Manjaro use este comando:

 sudo pacman -Suai pv 

IMAGEM_3

Usando pv

pv significa visualizador de tubos. A tubulação deve estar envolvida no comando em algum lugar. Aqui está um exemplo em que estamos pipetando uma imagem ISO através de zip para fazer um arquivo zip compactado da ISO.

Para diminuir os comandos o suficiente para que uma captura de tela possa ser tirada, alguns dos arquivos nos exemplos usado para este artigo foram armazenados em um USB antigo, lento e externo chamado SILVERXHD.

 pv / media / dave / SILVERXHD/gparted-live-1.0.0-1-amd64.iso | zip > gparted.zip 

A informação que pv nos dá pode ser vista na linha inferior da tela.

da esquerda para a direita, as informações exibidas são:

  • Os dados transferidos até o momento.
  • O tempo decorrido até agora.
  • A transferência de dados taxa (taxa de transferência).
  • Uma barra de progresso e uma porcentagem da figura concluída.
  • O tempo estimado antes da conclusão (ETA).

Copiando a Arquivo com pv

Para copiar um arquivo com saída de pv, use este comando:

 pv /media/dave/SILVERXHD/gparted-live-1.0.0- 1-amd64.iso > gparted.iso 

Recebemos um relatório de progresso quando o arquivo é copiado.

Copiando vários arquivos com pv

Para copiar vários arquivos e pastas com pv, precisamos usar um pequeno truque. Usamos tar para mover os arquivos para nós.

 tar -c help-files / | pv | tar -x -C Documentos / 

O tar -c arquivos de ajuda / parte do comando instrui tar para criar (-c) um arquivo dos arquivos na ajuda pasta de arquivos. Isso é canalizado através de pv para que possamos obter uma exibição do progresso. É então canalizado de volta para o tar para a última parte do comando. O arquivo é extraído (-x) e o diretório é alterado (-C) para Documentos antes da extração.

Assim, os arquivos e pastas que estão nos arquivos de ajuda são copiados para a pasta Documentos, com uma exibição de progresso.

A saída é ligeiramente diferente desta vez.

Nós não conseguimos um ETA. A barra de progresso agora exibe um indicador móvel. Isso mostra que o processo está ativo, mas não cresce da esquerda para a direita como uma barra de progresso tradicional. pv é limitado a exibir as informações que ele pode extrair do processo que está sendo canalizado.

Usando pv e tar para criar um arquivo

Copiar arquivos com pv e tar não nos deixa com um arquivo. Uma espécie de arquivo “virtual” é criado pelo tar, que é alimentado diretamente no tar para extrair os arquivos. Se nosso objetivo é copiar arquivos, isso é feito. Mas e se quisermos criar um arquivo?

Ainda podemos usar o tar para criar um arquivo e obter um relatório de progresso do pv. As opções usadas com o tar são -c (criar arquivo), -z (compactar com gzip) e -f (nome do arquivo).

Observe que estamos usando - como nome do arquivo, o que faz com que o tar use o stdout e grave sua saída na janela do terminal. Não vemos essa saída porque ela é canalizada por meio de pv.

O nome real do arquivamento será o nome do arquivo para o qual enviamos a saída de pv. Neste caso, é “help-files.tgz”.

 tar -czf - ./help-files/ | pv > help-files.tgz 

Recebemos os mesmos indicadores de progresso de antes e o arquivo é criado para nós.

RELACIONADO: Como compactar e extrair arquivos usando o comando tar no Linux

As opções de exibição pv

Existem várias opções que você pode usar com pv para alterar os detalhes do seu relatório.

Se você usar qualquer uma dessas opções, todas as outras opções serão desativadas. Então, se você quer ter três das opções de exibição em uso, então você precisa especificar essas três opções.

Usar pv sem nenhuma opção é o mesmo que usar as opções -pterb.

  • -p: exibe a porcentagem concluída. Essa é a barra de progresso e a porcentagem da figura concluída.
  • -t: exibe o tempo decorrido.
  • -e: exibe o ETA.
  • -r: exibir a taxa de transferência de dados.
  • -b: exibe a contagem de bytes (dados transferidos até o momento).
  • -n: exibe a porcentagem como um inteiro. Isso imprime a porcentagem concluída como um número inteiro, com cada nova atualização em uma nova linha.

Vamos repetir o último comando e passar a opção -p (porcentagem concluída) para pv.

 tar -czf - ./help-files/ | pv - p > help-files.tgz 

Isso desativa todas as outras opções de exibição. pv fornece a porcentagem concluída apenas para o elemento.

Como o pv não recebe uma porcentagem do número de cliques, a barra de progresso é substituída por um indicador de movimento. Não existe um valor percentual.

Usando pv Com wc

Podemos usar pv para enviar um arquivo de texto (ou arquivos) para o wc. wc irá então contar os retornos de carro, caracteres e palavras e pv nos dará um relatório de progresso.

Aqui estamos colocando todos os arquivos de “.page” no diretório de arquivos de ajuda no wc. / p>

 

Quando wc completa, podemos ver nossa contagem de retornos (linhas), caracteres e palavras de todos os arquivos “.page” na pasta de arquivos de ajuda.

Instalando o comando progress

O comando progress fornece o mesmo tipo de informação útil que o pv, mas funciona com um conjunto específico de comandos do Linux.

Para instalar o progresso no Ubuntu, use este comando:

 sudo apt-get instale o progresso 

Para instalar progresso no Fedora, use este comando:

 sudo dnf install progress [/ PR] 

Para instalar o progresso no Manjaro, use este comando:

 sudo pacman -Syu progresso 

O progresso de Comandos Funciona Com

Digitação progresso em uma janela de terminal e pressionar Enter forneça uma lista dos comandos com os quais o progresso funciona.

 progresso 

Uso do progresso com os tubos

são duas técnicas que podemos usar para monitorar comandos com progresso. A primeira é usar pipes.

O comando tar está na lista de comandos suportados que o progresso pode monitorar, então vamos usar tar.

As opções que usaremos serão o padrão Opções -c (criar arquivo), -z (compactar com gzip) e -f (nome do arquivo). Nós vamos criar um arquivo compactado de tudo na pasta de arquivos de ajuda, e o arquivo será chamado “help.tgz”.

Estamos colocando isso em progresso e usando o -m ( monitor), de modo que o progresso continue relatando o processo até que ele seja concluído.

 tar -czf help.tgz ./help-files/ | progress -m 

A janela do terminal mostrará o progresso do comando tar ao criar o arquivo.

À medida que cada arquivo é processado, ele é listado com as seguintes informações:

  • O ID do processo.
  • O nome do processo.
  • Porcentagem concluída.
  • Dados processados ​​e tamanho total do arquivo.
  • Taxa de dados (taxa de transferência).
  • Tempo estimado restante (ETA). [/ ul ]

    Você pode se surpreender ao ver um segundo conjunto de dados aparecer. Este primeiro conjunto de dados é para tar. O segundo é para o gzip. O tar chama o gzip para executar a compactação. Como o gzip está na lista de comandos suportados, o progresso informa sobre ele.

    Usando o Progresso no Modo de Monitor Contínuo

    Você pode usar o progresso em modo de monitor contínuo em tempo real usando a opção -M (monitor).

    Digite o seguinte comando em uma janela de terminal:

     progresso -M 

    o progresso informará que não há comandos em execução para monitorá-lo. Mas você não é retornado para a linha de comando. o progresso aguarda até que um comando que possa monitorar seja iniciado. Em seguida, ele começará a gerar relatórios automaticamente.

    Em outra janela de terminal, digite um comando que esteja na lista de comandos que o progresso pode monitorar.

    Vamos usar o gato. Comandos que acabaram muito rapidamente não serão registrados com o progresso, então listaremos o conteúdo de um arquivo de texto muito longo.

     cat words.page 

    Na janela do terminal com progresso, você verá estatísticas para o comando cat à medida que ele é executado e funciona para a conclusão.

    Quando o gato finaliza listando o progresso do arquivo retorna ao seu estado de espera.

    Cada vez que um dos comandos que ele pode relatar executa uma tarefa considerável, o progresso irá monitorá-lo automaticamente e reportá-lo.

    bem arrumado.

    100% Concluído

    Evite o trabalho de adivinhação de como um comando de longa duração está funcionando e faça uma pausa na contemplação de seu cursor com pv e progresso.

     

    Via: How to Geek

    Veja Também:

Nenhum comentário