Categories
Linux Tutoriais

Como monitorar a transferência de dados durante a cópia ou backup.

Como obter acompanhamento visual do progresso da cópia de arquivos, transferência de dados e realização de backups, com o utilitário pv, no Linux.

Sistemas operacionais UNIX ou GNU/Linux possuem um comando de cópia tradicional para a CLI: o cp.
Quando há vários arquivos para transferir de um diretório a outro, é possível acompanhar a finalização da transferência de cada um deles.

Mas só ficamos sabendo da finalização individual de cada cópia de arquivo.
Na GUI (ambiente gráfico), para quem usa um gerenciador de arquivos, também é possível acompanhar o progresso da transferência, com um nível mais elevado de exibição de informações.
elias praciano gnome nautilus
Na CLI, contudo, o comando cp, não permite obter este detalhamento do progresso da transferência dos seus arquivos.
mostrei como “atualizar” o comando cp, para forçar a exibição destas informações em outro post.
Neste, vou mostrar como obter o resultado com o utilitário pv.
Como não faz parte da instalação padrão da maioria das distribuições Linux, ele precisa ser instalado.
Por sorte, faz parte dos repositórios das grandes distribuições (Fedora, OpenSUSE, Debian, Ubuntu etc.)
Use o seu gerenciador de pacotes predileto para obtê-lo (yum, dnf, apt etc.)

Como funciona o pv

O pv é um utilitário para monitorar a transferência de dados.
Com ele, é possível obter informações sobre o percentual que ainda falta da tarefa a ser completada (com uma barra de progresso), o tempo de conclusão (estimado), a taxa de transferência, total de dados transferidos etc.
O pv é usado como pipeline (encanamento) entre dois processos.
Pode ser usado para monitorar o fluxo de dados local ou remotamente.
Eu sugiro o seu uso dentro de scripts, para dar retorno visual mais agradável sobre o progresso das atividades realizadas.

Exemplos de uso do pv

linux tranferencia de arquivo com comando pv
Para monitorar, enquanto faz a cópia de um arquivo, forneça a localização, o nome do arquivo de origem e do arquivo de destino:

pv origem > destino

Para copiar o arquivo-1.mp4 para dentro de um flash drive (montado no diretório Yellow), por exemplo:


pv arquivo-1.mp4 > /media/justincase/Yellow/arquivo-1.mp4

 355MiB 0:00:27 [1,36MiB/s] [=======================>          ] 73% ETA 0:00:09

No exemplo abaixo, o pv é usado para monitorar o backup dos diretórios apt/ e caching/:


tar -cjf - apt/ caching/ | (pv -p --timer --rate --bytes > backup.tar.bz)

34,5MiB 0:00:10 [2,79MiB/s] [        <=>  

Use o comando acompanhado da opção ‘-h’, para obter mais opções de uso:


pv -h


Se você está fazendo cópias de arquivos ou (des)compactando-os de dentro de um script, é possível dar um feedback visual mais atraente para o seu usuário, com o uso do comando pv.
Abaixo, um exemplo de backup do diretório ~/Documentos:


tar -czf - ~/Documentos/ | (pv -n > backup-docs.tgz) 2>&1 | dialog --gauge "Cópia de segurança do diretório Documentos" 10 70

backup whiptail
Se o utilitário whiptail não estiver presente no seu sistema, é possível usar o dialog.
No próximo exemplo, usamos o utilitário GUI, zenity:


tar -czf - ~/Documentos/ | (pv -n > backup-docs.tgz) 2>&1 | zenity --progress --text "Cópia de segurança do diretório Documentos"

backup zenity linux

Referências

https://www.tecmint.com/monitor-copy-backup-tar-progress-in-linux-using-pv-command/.

By Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como "Rick and Morty" e "BoJack Horseman".
Me siga no Twitter e vamos trocar ideias!

3 replies on “Como monitorar a transferência de dados durante a cópia ou backup.”

Oi Elias! Beleza carinha?!

Gostaria de um help seu, se possível…

Estou tendo um problema de gerenciamento de arquivos…
eu precisaria monitorar a cópia destes arquivos pra saber quando a cópia estiver concluída…

O problema é:
Estou com um ubuntu e o servidor samba.
Os arquivos que preciso monitorar são copiados de estações Windows da rede.
De minuto em minuto eu verifico a pasta pública do usuário pra saber se ele tem arquivos recebidos e movo estes arquivos pra uma pasta particular que só ele tem acesso.
O problema é que às vezes a cópia dos arquivos não está concluída e aí tenho problema com o comando “mv”, preciso aguardar esta cópia ser concluída mas o processo de cópia foi disparado por um sistema Windows pela rede.

Se tiver uma dica sobre ficarei muito grato.

Obrigado desde já.

Primeiro parabéns pelo excelente blog. Gosto muito da sua didática e a forma como explica as coisas. Gostaria de saber se teria como implementar o comando “pv” para monitorar um processo de backup que tenho do rclone. Sou leigo tentem varias formas e não consegui, se puder me ajudar ficaria mais do que grato. O comando seria esse:

sudo rclone move ~/TH/BACK/18-04/ GdriveC:Backup/18-04 –delete-empty-src-dirs

Teria como adicionar o comando “pv” para companhar e monitorar o processo?

Muito obrigado, desde já.

Se puder responder ficaria muito grato.

Abraço,
Wellington

O manual do pv, tem outros exemplos, além dos que usei, que podem ajudar a encontrar uma solução.

man pv

Experimente adicionar o pv ao final do seu comando, assim:


sudo rclone move ~/TH/BACK/18-04/ GdriveC:Backup/18-04 –delete-empty-src-dirs

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.