GNU/Linux >> Linux Esercitazione >  >> Linux

Come monitorare l'avanzamento dei dati attraverso un tubo utilizzando il comando "pv".

Immagina questo scenario. Stai tentando di copiare un file di grandi dimensioni da una directory a un'altra o da un sistema a un altro tramite la riga di comando. Come probabilmente saprai, non vedrai alcuna indicazione dell'attività di copia se stai usando il comando 'cp'. Vedrai solo uno schermo vuoto. Non puoi essere sicuro se il processo di copia è in corso o meno, fino al completamento del processo di copia. In questi casi, puoi utilizzare pv comando per monitorare lo stato di avanzamento dei dati. Il pv, acronimo di p ipe v Ad esempio, il comando consente a un utente di vedere lo stato di avanzamento dei dati attraverso una pipeline, fornendo le seguenti informazioni:

  • tempo totale trascorso,
  • percentuale completata (con barra di avanzamento),
  • velocità di trasmissione attuale,
  • dati totali trasferiti,
  • e ETA.

In questo breve tutorial, vedremo come e dove utilizzare il comando pv per monitorare l'andamento dei dati in sistemi simili a Unix.

Scarica - Cheat sheet gratuito:"Cheat sheet di Linux Command Line"

Installa pv in Linux

La maggior parte delle moderne distribuzioni Linux viene preinstallata con il comando pv. Nel caso in cui non fosse già installato, puoi installarlo eseguendo il seguente comando dal tuo Terminale a seconda della distribuzione Linux che usi.

Su Arch Linux, Antergos, Manjaro Linux:

$ sudo pacman -S pv

Su RHEL, CentOS, Fedora:

$ sudo yum install pv

Oppure,

$ sudo dnf install pv

Su Debian, Linux Mint, Ubuntu:

$ sudo apt-get install pv

Su SUSE, apri SUSE:

$ sudo zypper in pv

Ora abbiamo installato pv. Lascia che ti mostri alcuni esempi.

Monitoraggio dell'avanzamento dei dati attraverso un tubo utilizzando il comando 'pv'

Guarda l'output del seguente comando:

$ cp CentOS7.iso Downloads/

comando cp

Questo comando copia l'immagine ISO di CentOS 7 in Download directory nel mio sistema locale. Come vedi nell'output sopra, non mostra alcuna barra di avanzamento. Vedrai solo il cursore lampeggiare. Non sappiamo quanto tempo impiegherà il processo di copia. Questo potrebbe essere fastidioso a volte poiché non vediamo alcun segno di quando questo comando verrà completato. È qui che il comando pv viene in aiuto. Il comando pv ti mostrerà lo stato di avanzamento dei comandi Linux e ti mostrerà quando il comando Linux sarà completato. Quindi, puoi lasciare il Terminale e svolgere altre attività e tornare quando l'attività è terminata.

Ora, facciamo lo stesso con pipe viewer (pv) e vediamo qual è l'output.

$ pv CentOS7.iso > Downloads/centos.iso

Monitora l'avanzamento dei dati attraverso un tubo utilizzando il comando 'pv'

Vedi, capisci la differenza? Come ho detto, il comando pv mostra il tempo totale trascorso, la percentuale di completamento (con barra di avanzamento), la velocità di trasmissione attuale, il totale dei dati trasferiti e l'ETA.

Lascia che ti faccia qualche altro esempio.

Possiamo limitare la velocità di trasferimento dei dati utilizzando -L cambiare come mostrato nell'esempio seguente.

$ pv -L 2m CentOS7.iso > Downloads/centos.iso

Il comando precedente limiterà la velocità di trasferimento dei dati a 2 MB al secondo . Guarda il seguente output.

Limita la velocità di trasferimento dei dati usando il comando pv

Se hai più file o directory puoi usare pv con il comando tar come mostrato di seguito:

$ tar c Notebooks/ | pv | tar x -C Documents/

Il comando precedente comprimerà la directory Notebooks, la copierà nella directory Documents e infine estrarrà il contenuto.

Ecco un altro esempio. Questo comando creerà un archivio del file CentOS7.iso e salvarlo nella directory di lavoro corrente.

$ pv CentOS7.iso | zip > centos.zip

crea un file di archivio usando il comando pv

Puoi anche usare pv con il comando dd per copiare file tra directory come di seguito. Questo comando copia il file CentOS7.iso dalla directory corrente alla directory dei download.

$ dd if=CentOS7.iso | pv | dd of=Downloads/centos7.iso

usa il comando pv con il comando dd per copiare i file tra le directory

Un altro comando utile per visualizzare lo stato di avanzamento dei dati è dialogo . Possiamo usarlo insieme al comando pv per mostrare lo stato di avanzamento dei dati come di seguito.

$ tar -czf - Official/ | (pv -n > mybackup.tgz) 2>&1 | dialog --gauge "Compressing files, please wait..." 10 70 0

Risultato di esempio:

usa il comando dialog con il comando pv per mostrare lo stato di avanzamento dei dati

Per maggiori dettagli, fare riferimento alle pagine man.

$ man pv

Inoltre, consulta la nostra guida precedente per trasferire rapidamente file di grandi dimensioni tra due sistemi remoti tramite rete utilizzando netcattar , e pv comandi nei sistemi operativi Linux e Unix.

  • Come trasferire rapidamente file di grandi dimensioni in rete in Linux e Unix

Aggiornamento:

La barra di avanzamento per i comandi "cp" e "mv" può essere facilmente aggiunta utilizzando una patch denominata "Copia avanzata" . Per i dettagli, controlla il seguente link.

  • Copia avanzata:aggiungi la barra di avanzamento ai comandi cp e mv in Linux

Linux
  1. Come creare un database in MySQL utilizzando la riga di comando

  2. Come estrarre il file tar.gz in Linux utilizzando la riga di comando

  3. Come rimuovere l'utente in Linux utilizzando la riga di comando

  4. Come utilizzare il comando basename?

  5. Come verificare se un tubo è vuoto ed eseguire un comando sui dati in caso contrario?

Come riprodurre le sessioni del terminale registrate utilizzando il comando Scriptreplay

Come riavviare Debian usando la riga di comando

Come usare il comando nmap

Come installare Google Chrome su Ubuntu 18.04 utilizzando la riga di comando?

Come scrivere facilmente comandi utilizzando il cmdlet di Powershell Show-command

Come scaricare file in Rocky Linux 8 sulla riga di comando usando wget