Em vez de voar às cegas, use o Linux pv
e os progress
comandos para rastrear o progresso de um comando. Esses utilitários fornecerão barras de progresso para comandos que normalmente não possuem. Você verá um tempo estimado até a conclusão também.
Se você estiver em um voo de longo curso em uma aeronave sem telas de vídeo nos encostos dos bancos, não é fácil saber a que distância você está. Você sabe quando você decolou. Você sabe quanto tempo o vôo deve levar. Mas como saber se você está no caminho certo, no prazo ou muito atrasado? Se você não quiser assistir ao filme durante o vôo, você pode alternar sua tela de vídeo para mostrar um mapa com a posição de sua aeronave. Você também obtém algumas estatísticas, como um tempo previsto de chegada (ETA), o que é excelente.
Iniciar um comando a partir da janela do terminal pode às vezes 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 está bem ou se o processo travou, nem o quão perto de sua conclusão está. Um cursor piscando não é muito informativo.
Os comandos pv
e progress
fornecem algumas estatísticas e um pequeno feedback visual. Você pode ver o quão perto o processo está para ser concluído. Isso significa que você obtém um ETA para seus processos em execução. Comparado com olhar para um cursor, isso vence com facilidade.
Índice
Você deve instalar pv
.
Para instalar pv
no Ubuntu, use este comando:
sudo apt-get install pv
Para instalar pv
no Fedora, use este comando:
sudo dnf install PV
Para instalar pv
no Manjaro, use este comando:
sudo pacman -Syu pv
pv
significa visualizador de tubos . A tubulação deve estar envolvida no comando em algum lugar. Aqui está um exemplo em que estamos canalizando uma imagem ISO zip
para fazer um arquivo zip compactado do ISO.
Para tornar os comandos mais lentos o suficiente para que uma captura de tela pudesse ser feita, alguns dos arquivos nos exemplos usados para este artigo foram armazenados em um USB externo antigo e lento chamado SILVERXHD.
pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso | zip> gparted.zip
As informações fornecidas pv
podem ser vistas na linha inferior do visor.
Da esquerda para a direita, as informações exibidas são:
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 conforme o arquivo é copiado.
Para copiar vários arquivos e pastas pv
, precisamos usar um pequeno truque. Usamos tar
para mover os arquivos para nós.
tar -c help-files / | pv | Documentos tar -x -C /
A tar -c help-files/
parte do comando instrui tar
a criar ( -c
) um arquivo dos arquivos na pasta de arquivos de ajuda. Isso é canalizado pv
para que tenhamos uma exibição do progresso. Em seguida, é canalizado de volta 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 do andamento.
A saída é um pouco diferente desta vez.
Não recebemos um ETA. A barra de progresso agora exibe um indicador móvel. Mostra que o processo está ativo, mas não cresce da esquerda para a direita como uma barra de progresso tradicional. pv
limita-se a exibir as informações que pode extrair do processo que está sendo canalizado.
Copiar arquivos com pv
e tar
não nos deixa com um arquivo morto. Uma espécie de arquivo “virtual” é criado por tar
, que é alimentado de volta tar
para extrair os arquivos. Se nosso objetivo é copiar arquivos, está feito. Mas e se quisermos criar um arquivo morto?
Ainda podemos usar tar
para criar um arquivo e obter um relatório de progresso pv
. As opções usadas com tar
são -c
(criar arquivo), -z
(compactar com gzip) e -f
(nome do arquivo).
Observe que estamos usando -
como nome de arquivo, o que faz tar
com que use stdout e grave sua saída na janela do terminal. Não vemos essa saída porque ela é canalizada pv
.
O nome real do arquivo será o nome do arquivo de onde canalizamos a saída pv
. Neste caso, é “help-files.tgz”.
tar -czf - ./help-files/ | pv> help-files.tgz
Obtemos os mesmos indicadores de progresso de antes, e o arquivo é criado para nós.
Existem várias opções que você pode usar pv
para alterar os detalhes de seu relatório.
Se você usar qualquer uma dessas opções, todas as outras opções serão desativadas. Portanto, se você quiser ter três das opções de exibição em uso, precisará especificar essas três opções.
Usar pv
sem nenhuma opção é o mesmo que usar as -pterb
opções.
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 apenas o elemento de porcentagem concluído.
Como pv
não obtém um valor percentual concluído tar
, a barra de progresso é substituída por um indicador móvel. Não há valor percentual.
Podemos usar pv
para enviar um arquivo de texto (ou arquivos) para wc
. wc
então contará os retornos de carro, caracteres e palavras e pv
nos dará um relatório de progresso.
Aqui estamos canalizando todos os arquivos “.page” do diretório de arquivos de ajuda para o wc
.
Quando wc
terminar, podemos ver nossa contagem de retornos de carro (linhas), caracteres e palavras de todos os arquivos “.page” na pasta de arquivos de ajuda.
O progress
comando dá o mesmo tipo de informações úteis como pv
, mas funciona com um conjunto específico de comandos Linux.
Para instalar progress
no Ubuntu, use este comando:
sudo apt-get install progresso
Para instalar progress
no Fedora, use este comando:
progresso da instalação do sudo dnf
Para instalar progress
no Manjaro, use este comando:
sudo pacman -Syu progress
Digitar progress
em uma janela de terminal e pressionar Enter fornecerá uma lista dos comandos com os quais progress
funciona.
progresso
Existem duas técnicas que podemos usar para monitorar os comandos progress
. A primeira é usar canos.
O tar
comando está na lista de comandos suportados que progress
podem monitorar, então vamos usar tar
.
As opções que usaremos são as opções padrão -c
(criar arquivo), -z
(compactar com gzip) e -f
(nome do arquivo). Vamos criar um arquivo compactado de tudo na pasta de arquivos de ajuda, e o arquivo será nomeado “help.tgz”.
Estamos canalizando isso progress
e usando a -m
opção (monitorar), portanto, progress
continuamos relatando o processo até que ele seja concluído.
tar -czf help.tgz ./help-files/ | progresso -m
A janela do terminal mostrará o progresso do tar
comando à medida que cria o arquivo.
À medida que cada arquivo é processado, ele é listado, com as seguintes informações:
Você pode se surpreender ao ver um segundo conjunto de dados aparecer. Este primeiro conjunto de dados é para tar
. O segundo é para gzip
. tar
chamadas gzip
para realizar a compressão. Porque gzip
está na lista de comandos suportados, progress
relatórios sobre ele.
Você pode usar progress
em um 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
progress
irá relatar que não há comandos em execução para monitorar. Mas você não voltou para a linha de comando. progress
espera até que um comando que possa monitorar seja iniciado. Em seguida, ele começará a gerar relatórios sobre ele automaticamente.
Em outra janela de terminal, digite um comando que esteja na lista de comandos que o progresso pode monitorar.
Nós vamos usar cat
. Os comandos que terminam muito rapidamente não serão registrados com progress
, portanto, listaremos o conteúdo de um arquivo de texto muito longo.
cat words.page
Na janela do terminal com progress
ele, você verá as estatísticas do cat
comando conforme ele é executado e funciona até a conclusão.
Ao cat
terminar a listagem, o arquivo progress
retorna ao estado de espera.
Cada vez que um dos comandos sobre os quais ele pode relatar executa uma tarefa considerável, progress
ele o monitora e relata automaticamente.
Isso é muito legal.
Elimine as suposições de se perguntar como está o desempenho de um comando de longa duração e pare de contemplar o cursor com pv
e progress
.
Muitos aplicativos de limpeza estão disponíveis para Windows ao longo dos anos, mas hoje em…
Seu PlayStation 4 está congelado? Seus jogos favoritos continuam travando? Reiniciar seu PS4 pode resolver…
A popularidade das mensagens de texto significou aprender uma forma totalmente nova de comunicação. Você…
A foto dos "Pilares da Criação" tirada pelo Telescópio Espacial Hubble é uma das fotos…
O Proton Drive saiu de seu estágio beta há algumas semanas, mas o aplicativo real…
Para ver suas fotos mais de perto ou para uma edição precisa , você pode…