Use o progress para monitorar processos no Linux

O utilitário progress permite observar o andamento de processos dentro do coreutils.
A ferramenta, escrita em C e voltada para os sistemas operacionais GNU/Linux, exibe o progresso de comandos básicos, como o cp, mv, dd, tar, cat, rsync, grep, fgrep, egrep, cut, sort, md5sum, sha1sum, sha224sum, sha256sum, sha384sum, sha512sum, adb, gzip, gunzip, bzip2, bunzip2, xz, unxz, lzma, unlzma, zcat, bzcat, lzcat etc.

O GNU Core Utilities ou coreutils são o conjunto de utilitários básicos para manipulação de texto, de arquivos e da shell dos sistemas operacionais GNU/Linux.

Se um destes estiver rodando, o progress irá capturar e exibir informações sobre a transferência de dados, o tempo que ainda falta para finalizar etc.
Embora não venha instalado em algumas distribuições, é fácil encontrar o pacote de instalação nos repositórios.
No Debian, use o apt, para fazer a instalação:


sudo apt install progress

Se um dos comandos, citados acima, estiver em execução, a qualquer momento o progress pode capturar informações sobre ele.
Experimente com um procedimento mais demorado, como o cp, para copiar uma quantidade de arquivos grandes de uma unidade para outra.
No meu exemplo, abaixo, iniciei a cópia de um arquivo de backup de mais de 1 GB para uma unidade flash USB.


cp -r Música/ /media/justincase/yellow/ &
[1] 1056

Usei o ‘&’, acima, para enviar o processo para o segundo plano e liberar o terminal para o próximo comando:


progress -w

[ 1056] cp /home/justincase/Música/arquivo-de-musica.flac
    74.9% (32.5 MiB / 43.4 MiB)

Como você pode ver, acima, o progress exibe o progresso da cópia do arquivo atual (74%) e sai.
Você pode invocar o programa outras vezes, para saber o andamento da cópia.
Se achar melhor, pode combiná-lo com o watch, para poder observar o progresso on the fly:


watch progress -w

captura de tela progresso do comando de cópia no Linux
Veja um exemplo de acompanhamento da verificação do shasum da imagem ISO do Ubuntu:


sha512sum ubuntu-17.10-desktop-amd64.iso & watch progress -w

Se houver processos dos coreutils rodando, a ferramenta irá captar e exibir informações sobre todos eles.
Para obter uma visualização mais enxuta, use a opção ‘-q’:


progress -q

[ 2119] sha256sum /home/justincase/Downloads/ubuntu-17.10-desktop-amd64.iso
    7.4% (105.3 MiB / 1.4 GiB)

[ 2118] sha512sum /home/justincase/Downloads/ubuntu-17.10-desktop-amd64.iso
    11.5% (164.3 MiB / 1.4 GiB)

Neste modo, o tempo restante para a conclusão (remaining) de cada processo não é exibido.
Para enxugar, mais ainda, a linha de comando, use as opções ‘-m’ ou ‘-M’.
Elas substituem o uso do watch!


progress -m

Outra vantagem do uso de ‘-m’, é que a tela fica menos suja, após a execução dos comandos, e permite ver melhor o resultado de cada.
O ‘-M’, mantém o monitoramento continuadamente.
Este pode ser ideal, para execução em um terminal à parte, onde os coreutils podem ser capturados e monitorados o tempo todo no seu sistema.

Referências

https://www.gnu.org/software/coreutils/coreutils.html.

https://pt.wikipedia.org/wiki/GNU_Core_Utilities.