GNU/Linux >> Linux Esercitazione >  >> Linux

Come monitorare l'avanzamento dei dati (copia/backup/compressione) utilizzando il comando 'pv'

Quando si eseguono backup, si copiano/spostano file di grandi dimensioni sul sistema Linux, è possibile 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.

Leggi anche :comando di copia avanzato per mostrare la barra di avanzamento durante la copia di file in Linux

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

Lettura consigliata: Progresso:un piccolo strumento per monitorare i progressi per i comandi (cp, mv, dd, tar, ecc.)

Pv è uno strumento basato su terminale che consente di monitorare lo stato di avanzamento dei dati inviati tramite una pipe. Quando si utilizza il pv comando, ti dà una visualizzazione visiva delle seguenti informazioni:

  1. Il tempo trascorso.
  2. La percentuale di completamento inclusa una barra di avanzamento.
  3. Mostra la velocità di trasmissione corrente.
  4. Il totale dei dati trasferiti.
  5. e l'ETA (tempo stimato).

Come installare pv Command in Linux?

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

Su Fedora, CentOS e RHEL

Per prima cosa devi attivare il repository EPEL e quindi eseguire il comando seguente.

# yum install pv
# dnf install pv            [On Fedora 22+ versions]
Risultato campione
Dependencies Resolved

=================================================================================
 Package       Arch              Version                   Repository       Size
=================================================================================
Installing:
 pv            x86_64            1.4.6-1.el7               epel             47 k

Transaction Summary
=================================================================================
Install  1 Package

Total download size: 47 k
Installed size: 93 k
Is this ok [y/d/N]: y
Downloading packages:
pv-1.4.6-1.el7.x86_64.rpm                                 |  47 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : pv-1.4.6-1.el7.x86_64                                         1/1 
  Verifying  : pv-1.4.6-1.el7.x86_64                                         1/1 

Installed:
  pv.x86_64 0:1.4.6-1.el7                                                        

Complete!

Su Debian, Ubuntu e Linux Mint

# apt-get install pv
Risultato campione
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  pv
0 upgraded, 1 newly installed, 0 to remove and 533 not upgraded.
Need to get 33.7 kB of archives.
After this operation, 160 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu/ trusty/universe pv amd64 1.2.0-1 [33.7 kB]
Fetched 33.7 kB in 0s (48.9 kB/s)
Selecting previously unselected package pv.
(Reading database ... 216340 files and directories currently installed.)
Preparing to unpack .../archives/pv_1.2.0-1_amd64.deb ...
Unpacking pv (1.2.0-1) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Setting up pv (1.2.0-1) ...

Su Gentoo Linux

Usa il gestore di pacchetti emerge per installare pv comando come mostrato.

# emerge --ask sys-apps/pv

Su Linux FreeBSD

Puoi utilizzare la porta per installarlo come segue:

# cd /usr/ports/sysutils/pv/
# make install clean

O aggiungi il pacchetto binario come segue:

# pkg_add -r pv

Come si usa pv Command in Linux?

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

L'input standard di pv verrà passato al suo output standard e lo stato di avanzamento (output) verrà stampato sull'errore standard. Ha un comportamento simile al comando cat in Linux.

La sintassi del comando pv come segue:

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

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

Alcune opzioni sotto i modificatori di visualizzazione.
  1. Per attivare la barra di visualizzazione, usa il -p opzione.
  2. Per visualizzare il tempo trascorso, utilizza il –timer opzione.
  3. Per attivare il timer ETA che tenta di indovinare quanto tempo ci vorrà prima del completamento di un'operazione, usa il –eta opzione. L'ipotesi si basa sulle velocità di trasferimento precedenti e sulla dimensione totale dei dati.
  4. Per attivare un contatore usa il –tasso opzione.
  5. Per visualizzare la quantità totale di dati trasferiti finora, utilizza i –byte opzione.
  6. Per visualizzare informazioni sull'avanzamento della percentuale intera anziché dell'indicazione visiva, utilizza -n opzione. Questo può essere utile quando si utilizza pv con il comando dialog per mostrare lo stato di avanzamento in una finestra di dialogo.
Alcune opzioni sotto i modificatori di output.
  1. Per attendere il trasferimento del primo byte prima di visualizzare le informazioni sull'avanzamento, utilizza –wait opzione.
  2. Presumere che la quantità totale di dati da trasferire sia SIZE byte quando si calcola la percentuale e l'ETA, utilizzare –size SIZE opzione.
  3. Per specificare i secondi tra gli aggiornamenti, utilizza l'intervallo SECONDS opzione.
  4. Usa –force opzione per forzare un'operazione. Questa opzione forza pv a visualizzare elementi visivi quando l'errore standard non è un terminale.
  5. Le opzioni generali sono –aiuto per visualizzare informazioni sull'utilizzo e –versione per visualizzare le informazioni sulla versione.

Usa il comando pv con esempi

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

Ad esempio, per copiare opensuse.vdi file su /tmp/opensuse.vdi , esegui questo comando e guarda la barra di avanzamento in 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 in /etc/hosts file mentre mostra 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. Utilizzo di pv e dialogo strumento basato su terminale 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 di operazioni come copia/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 ricevi errori durante l'utilizzo, puoi anche lasciare un commento.


Linux
  1. Come eseguire il backup o clonare le partizioni Linux utilizzando il comando "cat".

  2. Come riavviare Linux utilizzando la riga di comando

  3. Come comprimere ed estrarre file usando il comando tar su Linux?

  4. Come uccidere un processo su Linux usando il comando?

  5. Come comprimere e decomprimere file .bz2 in Linux usando il comando bzip2

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

Come eseguire il backup di file e cartelle in Debian 10

Come eseguire il backup del filesystem Linux utilizzando il comando dump

Come usare ss Command (monitora connessioni di rete)

Come copiare file in Linux usando il comando CP

Come creare una partizione usando il comando "separato".