Monitorando o progresso em comandos Linux


A linha de comando no Linux, quando bem dominada, é muito eficaz na utilização do dia a dia. Porém, comandos mais utilizados, tais como os cp, mv, dd, tar, gzip/gunzip, cat, e outros na mesma linha tem uma característica comum que as vezes se torna irritante. Quando o tempo necessário para executar uma tarefa é grande, não temos nenhuma informação de quanto falta ou quanto já foi realizado do comando. Ai então entra em ação o “progress”.

Vamos mostrar como podemos utilizar este programa para nos informar, em tempo real, como está o andamento destes comandos.

Estes experimentos foram realizados numa máquina Linux Mint 18.1

Instalando:

A partir da linha de comando:

 sudo apt-get install progress

Utilizando:

Em primeiro lugar vamos ver os comandos monitorados:

 digite no terminal: progress

Uma tela semelhante a seguinte figura deverá mostrar a listagem de todos os comandos monitorados.

Lista de comandos monitorados

A sintaxe do comando é a seguinte:

       progress [ -qdwmM ] [ -W secs ] [ -c command ] [ -p pid ]
       progress -v | --version
       progress -h | --help

As opções mais utilizadas são:

  • -w –wait Mostra o velocidade de E/S estimada e o tempo faltante
  • -m –monitor fica em loop enquanto os processos monitorados estão executando
  • -M –monitor-continuously similar ao monitor mas nunca para (similar a “watch progress”)
  • -c –command cmd monitora somente o comando “cmd”
  • -p –pid id monitora somente o processo com o ID = id
  • -v –version mostra a versão do programa e sai
  • -h –help mostra a ajuda (em Inglês ) e sai

Vamos copiar um arquivo grande e vigiar o que está ocorrendo. Primeiro abra um terminal e digite:

 watch progress -q

Abra um outro terminal e execute o comando desejado, neste caso o cp

 cp arquivoOrigem  arquivoDestino

Observe que no primeiro terminal será apresentado o andamento do comando cp, conforme apresentado a seguir:

Resultado parcial

Também podemos utilizar um pipe com os comandos, como no exemplo a seguir:

 cp arquivoOrigem  arquivoDestino | progress -m $1

Obs: $! contem o ID do processo em background mais recentemente executado

Na tela podemos acompanhar a execução do programa cp.

A experimentação com as demais opções vai lhe permitir descobrir como é útil este aplicativo.

Até +!

 

Deixe um comentário