Linux: Visualize o progresso de uma acção com o comando pv
A shell Linux é onde reside todo o poder de interacção com o sistema. Apesar de permitir realizar as mais diversas acções, muita das vezes o utilizador não tem a noção do tempo necessário para que uma determinada tarefa (ex. copia de ficheiros, compactação, etc) seja finalizada.
Mas para quem pretender visualizar o progresso de uma acção há um comando para tal. Vamos conhecer o pv.
Quando fazemos backups, copiamos grandes ficheiros normalmente não temos a noção de quanto tempo falta para que a acção seja terminada. Mas há um comando para tal!
Usando o comando pv é possível ver o progresso de uma tarefa no sistema assim como:
- Tempo que falta para terminar
- informação do tempo que falta em %
- Throughput rate Actual
- Total de dados transferidos
- ETA (tempo estimado)
Como instalar o comando pv?
A instalação do comando pv é bastante simples. Para isso basta abrir o terminal (tutorial feito usando a distro Debian) e inserir o seguinte comando:
apt-get install pv |
Como usar?
A utilização deste comando é bastante simples pois basta que se use o pv antes de qualquer outro comando. exemplo:
pv /var/log/syslog | zip > syslog.zip |
Mas o o pv pode ser usado das mais diversas formas. Para isso podem ver o manual do comando escrevendo man pv
O comando pv não é fundamental no sistema mas é importante para quem pretender ter a noção de tempo de realização de uma tarefa. Para quem precisa, fica a sugestão.
Este artigo tem mais de um ano
É um substituto do cat?
Não tem nada a ver 🙂
Depois de ler a manpage do pv, fiquei a saber que sim, faz o mesmo que o comando cat, que é precisamente abrir um ficheiro (ou varios) e enviar para o stdout. (É para isso que o cat serve, apesar da maioria dos usos dados pelas pessoas, é esparregar ficheiros de texto na consola)
Só que este, mostra o progresso na consola.
Aiai, 😛
Vai lá ler bem, não é bem isso 🙂
Ok, concordamos em discordar, mas eu sei que tenho razão 😀
Ok ok, amigos à mesma 😀 não fosse essa a filosofia do mundo Linux 😀
Na verdade o Rui até tem razão.
Não é na verdade…na prática pode fazer algumas coisa do cat mas não é esse o objectivo do pv. http://ss64.com/bash/pv.html
A base de operação é a mesma!
Tiradas das manpages:
cat: The cat utility reads files sequentially, writing them to the standard output
pv: pv will copy each supplied FILE in turn to standard output (- means standard input), or if no FILEs are specified just standard input is copied. This is the same behaviour as cat(1).
Até diz que faz a mesma coisa que o cat, a diferença é que imprime no ecrã…
Pedro Pinto, no UNIX, existe o standard input, standard output, standard error.
Provavelmente o pv usa o standard output para fazer o mesmo que faz o cat, e o standard error, para mostrar no ecrã…
Muitas aplicações, quando você faz applicacao > out.txt, você verá que o texto normal, aparece no ficheiro, mas os erros (se o programador usar o standard error), não aparecem.
Na shell, se você não apontar nada, é que aparece no ecrã o standard output e o standard error, e não se distinguem em nada…
pessoal…
O Pedro tem razão!
Pelo facto evidente de copiar de algum lado para o stdout não quer dizer que seja um cat, porque além dessa funcionalidade este comando gasta muito mais recursos que o cat , para outras tarefas de informação…
Ou seja não é um comando para fazer a mesma coisa que o cat!
Por essa vossa logica quase que consigo dizer que o vi faz o mesmo que o cat, e já agora outros milhões de aplicações , o que não é verdade!
São comandos para situações diferentes, que consoante o que queremos, e consoante os recursos que quermoes gastar usamos um ou o outro..
Dá muito jeito para ver o progresso ao flashar imagens com o dd.
Utilizo este exemplo muitas vezes [CUIDADO COM O DD, estão avisados!]:
dd if=OpenELEC-RPi.arm-5.0.8.img bs=4M | pv | sudo dd of=/dev/sdX
Para o DD uso “kill -USR1 PID-do-DD” 😀
aí está !!!
Boa receita!
desconhecia. mto obrg pelo artigo!
man cat
http://linux.die.net/man/1/cat
Utilizo muitas vezes para realizar cópias integrais de discos (dd) e seguir o progresso da operação
Mas quem é que copia coisas pelo terminal?
Utilizador ubuntu, certo?
LOOOL!
Muita gente, por exemplo eu trabalho para ai 80% do tempo no terminal.
Para quem tem prática na utilização do terminal é imensamente mais rápido/produtivo do que ficar aos “clicks” por várias janelas diferentes.
+1 . Só sabe quem conhece e o resto é treta …
Não percebi nada da forma de utilização…
Quem é que pode explicar o comando
pv /var/log/syslog | zip > syslog.zip
Como é que se pode usar o pv para uma cópia por exemplo?
penso que seja
pv mv testfile testfile2
pv original > copia
Não, é simples:
pv ficheiro1 > ficheiro2
Mostra o tempo de compactacao do syslog.
Simples.
Exacto, o tempo que vai ser necessário para compactar o ficheiro /var/log/syslog para syslog.zip
A última vez que mexi numa linha de comandos foi para escrever a palavra WIN para o windows 3.11 correr em 1994/5…
Estamos em 2015 e o Linux ainda necessita de comandos na promp.
Tu nao és realista, tu és pouco esperto.
É muito hipocrita…
Quando o assunto é unix, vem dizer que ninguém precisa de linhas de comandos.
Quando o assunto é Apple, diz que o iPad não presta, porque não corre aplicações desktop.
Ou seja, para ele, é Windows, já que é a única coisa que dá para correr os joguinhos dele…
Ve-se logo que nao és sys admin
Se soubesse, por exemplo, que grande parte da internet é assegurada por linhas de comandos, não dizia isto …
Reparaste que a Microsoft tem apostado cada vez mais na interface shell? 😉 Windows SERVER CORE 😉
Para beginners,
Sim nao precisas da linha de comandos para quase nada…
Ya … os beginners curtem bués. Quando és avançado clicas em botões …
Tens toda a razão, 2015, e a Microsoft só anda agora a promover a PowerShell à força toda. Porque será?
Faça-se a distinção entre utilizador comum e administradores de sistemas e outros do ramo, se és do primeiro grupo, acho perfeitamente normal que não precises de abrir a linha de comados. Gozar só porque sim, é um bocado imbecil.
+1
+1 Para quem percebe que interfaces gráficos são traduzidos em instruções e cujas instruções são, muitas vezes, mais fáceis de programar por comandos …
Grande parte das vezes os interfaces gráficos são limitados e só atrapalham em processos batch. Principalmente quando queres “tocar” em vários ficheiros com um certo padrão. Aí tens toda a flexibilidade de uma linha de comandos, que em poucas instruções consegue fazer o que não consegues com variados clicks em botões. Só sabe quem conhece …
Dá para ver o progresso? Sendo assim, deve ser a unica maneira de o ver em Portugal.
A tradução de “progress” é “evolução” e não “progresso”, pelo menos neste contexto.
Porque é que nunca indicas o site de onde tiras as tuas inspirações para as dicas que
colocas aqui? Esta dica vem publicada no site da Tecmint em 02-10-2015:
http://www.tecmint.com/monitor-copy-backup-tar-progress-in-linux-using-pv-command/
Não indicar fonte é intelectualmente desonesto… 🙂
Olha os “podres” … o pessoal “intelectualmente desonesto” não gosta … Porquê puxar pela cabeça quando já está feito ?
Uma pergunta: justifica o ordenado lol ?!? dêem-me um “poleiro” destes que eu faço artigos interessantes e ORIGINAIS todos os dias. Fucking “really” yeah !!!