Ricerca nel sito web

Pv: mostra l'avanzamento dei dati [Copia/Backup/Comprimi] in Linux


Quando esegui backup e copi/sposti file di grandi dimensioni sul tuo sistema Linux, potresti voler monitorare l'avanzamento di un'operazione in corso. Molti strumenti del terminale non dispongono della funzionalità per consentire di visualizzare le informazioni sullo stato di avanzamento quando un comando è in esecuzione in una pipe.

In questo articolo, esamineremo un importante comando Linux/Unix chiamato pvPipe Viewer.

Pv è uno strumento basato su terminale che consente di monitorare l'avanzamento dei dati inviati attraverso una pipe. Quando usi il comando pv, ti dà una visualizzazione visiva delle seguenti informazioni:

  • Il tempo che è trascorso.
  • La percentuale completata include una barra di avanzamento.
  • Mostra la velocità di throughput corrente.
  • I dati totali trasferiti.
  • e l'ETA (Tempo stimato).

Come installare il comando pv in Linux?

Il comando pv non è installato per impostazione predefinita sulla maggior parte delle distribuzioni Linux, pertanto puoi installarlo seguendo i passaggi seguenti.

Installa pv su Linux basato su RHEL

Innanzitutto, devi attivare il repository EPEL e quindi eseguire il seguente comando yum o dnf per installarlo.

yum install pv
OR
dnf install pv          

Installa pv su Linux basato su Debian

sudo apt-get install pv

Installa pv su altre distribuzioni Linux

sudo emerge -a pv        [On Gentoo Linux]
sudo apk add pv          [On Alpine Linux]
sudo pacman -S pv        [On Arch Linux]
sudo zypper install pv   [On OpenSUSE]    

Come posso utilizzare il comando pv in Linux?

pv viene utilizzato principalmente con altri programmi che non hanno la capacità di monitorare l'avanzamento di un'operazione in corso. Puoi usarlo, inserendolo in una pipeline tra due processi, con le opzioni appropriate disponibili.

Lo standard input di pv verrà passato al suo standard output e l'avanzamento (output) verrà stampato sullo standard error. Ha un comportamento simile al comando cat in Linux.

La sintassi del comando pv è la seguente:

pv file
pv options file
pv file > filename.out
pv options | command > filename.out
comand1 | pv | command2 

Le opzioni utilizzate con pv sono divise in tre categorie, interruttori di visualizzazione, modificatori di output e opzioni generali.

Opzioni dei modificatori di visualizzazione Pv

Alcune opzioni sono sotto i modificatori di visualizzazione.

  • Per attivare la barra di visualizzazione, utilizza l'opzione -p.
  • Per visualizzare il tempo trascorso, utilizza l'opzione --timer.
  • Per attivare il timer ETA che cerca di indovinare quanto tempo ci vorrà prima del completamento di un'operazione, usa l'opzione --eta. L'ipotesi si basa sulle velocità di trasferimento precedenti e sulla dimensione totale dei dati.
  • Per attivare un contatore delle tariffe utilizza l'opzione --rate.
  • Per visualizzare la quantità totale di dati trasferiti finora, utilizza l'opzione --bytes.
  • Per visualizzare le informazioni sull'avanzamento della percentuale intera invece dell'indicazione visiva, utilizzare l'opzione -n. Questo può essere utile quando si utilizza pv con il comando dialog per mostrare l'avanzamento in una finestra di dialogo.

Opzioni dei modificatori di visualizzazione Pv

Alcune opzioni sono sotto i modificatori di output.

  • Per attendere il trasferimento del primo byte prima di visualizzare le informazioni sull'avanzamento, utilizzare l'opzione --wait.
  • Per presupporre che la quantità totale di dati da trasferire sia SIZE byte quando si calcola la percentuale e l'ETA, utilizzare l'opzione --size size.
  • Per specificare i secondi tra gli aggiornamenti, utilizza l'opzione --interval SECONDS.
  • Utilizza l'opzione --force per forzare un'operazione. Questa opzione forza pv a visualizzare elementi visivi quando l'errore standard non è un terminale.
  • Le opzioni generali sono --help per visualizzare le informazioni sull'utilizzo e –version per visualizzare le informazioni sulla versione.

Comando Pv con esempi in Linux

1. Quando non è inclusa alcuna opzione, i comandi pv vengono eseguiti con i valori predefiniti -p, -t, -e, -r e -b.

Ad esempio, per copiare il file opensuse.vdi su /tmp/opensuse.vdi, esegui questo comando e guarda la barra di avanzamento nello screencast.

pv opensuse.vdi > /tmp/opensuse.vdi

2. Per creare un file zip dal tuo file /var/log/syslog, esegui il comando seguente.

pv /var/log/syslog | zip > syslog.zip

3. Per contare il numero di righe, parole e byte nel file /etc/hosts mostrando solo la barra di avanzamento, esegui questo comando di seguito.

pv -p /etc/hosts | wc

4. Monitora l'avanzamento della creazione di un file di backup utilizzando l'utilità tar.

tar -czf - ./Downloads/ | (pv -p --timer --rate --bytes > backup.tgz)

5. Nell'esempio, utilizziamo il comando dd per scrivere il file ISO sull'unità flash USB:

dd if=debian-10.11.0-amd64-DVD-1.iso | pv | dd of=/dev/sda bs=4M

6. Utilizzando pv e lo strumento basato su terminale dialog insieme per creare una barra di avanzamento della finestra di dialogo come segue.

tar -czf - ./Documents/ | (pv -n > backup.tgz) 2>&1 | dialog --gauge "Progress" 10 70

Riepilogo

Questo è un buon strumento basato su terminale che puoi utilizzare con strumenti che non hanno la capacità di monitorare l'avanzamento delle operazioni come copiatura/spostamento/backup di file, per ulteriori opzioni controlla man pv .

Spero che questo articolo ti sia utile e che tu possa pubblicare un commento se hai qualche idea da aggiungere sull'uso del comando pv. E se riscontri errori durante l'utilizzo, puoi anche lasciare un commento.