Quantcast

Linux: Visualize o progresso de uma acção com o comando pv

44 Comentários

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.

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

pv_00

Mas o o pv pode ser usado das mais diversas formas. Para isso podem ver o manual do comando escrevendo man pv

pv_01

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.

Comentários

44
  1. RU
    Rui

    É um substituto do cat?

    1. PP

      Não tem nada a ver 🙂

      1. RU
        Rui

        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, 😛

        1. PP

          Vai lá ler bem, não é bem isso 🙂

          1. RU
            Rui

            Ok, concordamos em discordar, mas eu sei que tenho razão 😀

          2. PP

            Ok ok, amigos à mesma 😀 não fosse essa a filosofia do mundo Linux 😀

          3. RP
            Ricardo Pontes

            Na verdade o Rui até tem razão.

          4. PP

            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

          5. BB
            Baptista Batos

            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…

          6. LM
            lmx

            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..

  2. MP
    Mário Pinto

    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

    1. PE
      Pedro

      Para o DD uso “kill -USR1 PID-do-DD” 😀

      1. NO
        nope

        aí está !!!

    2. RU
      Rui

      Boa receita!

  3. CC
    cc

    desconhecia. mto obrg pelo artigo!

  4. JF
  5. WH
    Whatever

    Utilizo muitas vezes para realizar cópias integrais de discos (dd) e seguir o progresso da operação

  6. JL
    J.C.Lopes

    Mas quem é que copia coisas pelo terminal?

    1. PE
      Pedro

      Utilizador ubuntu, certo?

      1. BB
        Baptista Batos

        LOOOL!

    2. RA
      RaCcOn

      Muita gente, por exemplo eu trabalho para ai 80% do tempo no terminal.

    3. AL
      AlexAlex

      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. NO
        nope

        +1 . Só sabe quem conhece e o resto é treta …

  7. MO
    Modem

    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?

    1. BE
      Bernardo

      penso que seja
      pv mv testfile testfile2

      1. BB
        Baptista Batos

        pv original > copia

      2. RU
        Rui

        Não, é simples:

        pv ficheiro1 > ficheiro2

    2. JU
      Junior

      Mostra o tempo de compactacao do syslog.
      Simples.

      1. PP

        Exacto, o tempo que vai ser necessário para compactar o ficheiro /var/log/syslog para syslog.zip

  8. RE
    Realista

    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.

    1. XI
      Xico

      Tu nao és realista, tu és pouco esperto.

      1. RU
        Rui

        É 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…

    2. PI
      Pituína

      Ve-se logo que nao és sys admin

      1. NO
        nope

        Se soubesse, por exemplo, que grande parte da internet é assegurada por linhas de comandos, não dizia isto …

    3. NO
      Norberto

      Reparaste que a Microsoft tem apostado cada vez mais na interface shell? 😉 Windows SERVER CORE 😉

    4. RA
      RaCcOn

      Para beginners,
      Sim nao precisas da linha de comandos para quase nada…

      1. NO
        nope

        Ya … os beginners curtem bués. Quando és avançado clicas em botões …

    5. YA
      YaBa

      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. LM
      2. NO
        nope

        +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 …

    6. NO
      nope

      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 …

  9. LV
    luis verdasca

    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.

  10. KO
    kokoloko

    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… 🙂

    1. NO
      nope

      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 !!!

Deixe um comentário