Come monitorare l'avanzamento dei comandi di Linux (con pv e progresso)

Contenuti

Prompt dei comandi del terminale Linux su un laptop

Invece di volare alla cieca, usa Linux pv e progress comandi per tenere traccia dell'avanzamento di un comando. Queste utilità ti forniranno barre di avanzamento per i comandi che non ne hanno regolarmente. Vedrai anche un tempo stimato fino al completamento.

Se sei su un volo a lungo raggio in aereo senza schermi video sugli schienali dei sedili, non è facile sapere quanto sei lontano dal tuo viaggio. Sai quando sei decollato. Sai quanto tempo dovrebbe durare il volo. Ma, Come fai a sapere se sei sulla strada giusta?, puntuale o molto tardi? Se non vuoi vedere il film durante il volo, generalmente puoi cambiare lo schermo video per mostrare una mappa con la posizione del tuo aereo su di essa. Ottieni anche alcune statistiche, come l'orario di arrivo previsto (E), che è grandioso.

L'avvio di un comando dalla finestra del terminale a volte può sembrare un volo a lungo raggio senza uno schermo video. Non ha nulla che indichi se tutto va bene o se la procedura è andata in crash, né quanto è vicino al completamento. Un cursore lampeggiante non è molto informativo.

il pv e progress I comandi forniscono alcune statistiche e un feedback visivo. Puoi vedere quanto è vicina la procedura da completare. Ciò significa che ottieni un ETA per i tuoi processi in esecuzione. Rispetto a fissare un cursore, che vince senza dubbio.

Installazione FV

Devi installare pv.

Installare pv in Ubuntu usa questo comando:

sudo apt-get install pv

Installare pv in Fedora usa questo comando:

sudo dnf install pv

Installare pv in Manjaro usa questo comando:

sudo pacman -Syu pv

usando pv

pv Rappresenta visualizzatore di tubi. La pipeline deve essere coinvolta nel comando da qualche parte. Ecco un esempio in cui stiamo incanalando un'immagine ISO attraverso zip per creare un file zip compresso dell'ISO.

Per rallentare i comandi basta poter fare uno screenshot, alcuni dei file di esempio utilizzati per questo post sono stati archiviati su una vecchia USB esterna lenta chiamata SILVERXHD.

pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso | cerniera lampo > gparted.zip

Informazione pv ci dà può essere visto nella riga inferiore dello schermo.

Da sinistra a destra, le informazioni visualizzate sono:

  • Dati trasferiti finora.
  • Il tempo è passato fino ad ora.
  • La velocità di trasferimento dei dati (prestazione).
  • Una barra di avanzamento e una cifra percentuale completa.
  • Il tempo stimato rimanente prima del completamento (E).

Copia un file con pv

Per copiare un file con output da pv, usa questo comando:

pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso > gparted.iso

Riceviamo un rapporto sullo stato di avanzamento man mano che il file viene copiato.

copiando un file con pv in una finestra di terminale si

Copia più file con pv

Per copiare più file e cartelle con pv dobbiamo usare un piccolo trucco. Noi usiamo tar per spostare i file per noi.

tar -c file-aiuto/ | pv | tar -x -C Documenti/

il tar -c help-files/ parte del comando istruisce tar creare (-c) un file dai file nella cartella dei file di aiuto. Questo è incanalato attraverso pv in modo da ottenere una visualizzazione dei progressi. Viene quindi incanalato di nuovo verso tar per l'ultima parte del comando. Il file viene estratto (-x) e la directory è cambiata (-C) a Documenti prima dell'estrazione.

Perché, i file e le cartelle che si trovano nei file della guida vengono copiati nella cartella Documenti, con una schermata di avanzamento.

L'output è leggermente diverso questa volta.

Non riceviamo un ETA. La barra di avanzamento ora mostra un indicatore in movimento. Indica che la procedura è attiva, ma non cresce da sinistra a destra come una barra di avanzamento tradizionale. pv si limita a mostrare le informazioni che può estrarre dalla procedura che si sta canalizzando.

Usare pv e tar per creare un archivio

Copia file con pv e tar non ci lascia con un file di archivio. tipo di file “virtuale” è creato da tar, che viene restituito direttamente a tar per estrarre i file. Se il nostro obiettivo è copiare i file, che si ottiene. Ma, E se volessimo creare un file di archivio?

Possiamo ancora usare tar per creare un file di archivio e ottenere un rapporto sullo stato di avanzamento di pv. Alternative utilizzate con tar è così -c (creare file), -z (comprimere con gzip) e -f (file nome file).

Si prega di notare che stiamo usando - come nome del file, che causa tar utilizzo stdoute scrivi il suo output nella finestra del terminale. Non vediamo quella presa perché è incanalata attraverso pv.

Il nome effettivo del file sarà il nome del file da cui convogliamo l'output pv entro. Per questo caso, è “file-aiuto.tgz”.

tar -czf - ./file-aiuto/ | pv > file-aiuto.tgz

Otteniamo gli stessi indicatori di progresso di prima e l'archivio viene creato per noi.

IMPARENTATO: Come comprimere ed estrarre file usando il comando tar in Linux

Le alternative del display fotovoltaico

Ci sono diverse opzioni con cui puoi usare pv per modificare i dettagli della tua segnalazione.

Se usi una di queste opzioni, tutte le altre opzioni sono disabilitate. Quindi, se vuoi avere tre delle alternative di visualizzazione in uso, devi specificare queste tre opzioni.

Usando pv senza alcuna opzione è come usare il -pterb opzioni.

  • -pagina: mostra il percentuale completo. Questa è la barra di avanzamento e la cifra percentuale completa.
  • -T: mostra il tempo trascorso tempo metereologico.
  • -me: mostra il E.
  • -R: mostra il indice trasferimento dati.
  • -B: mostra il byte raccontare (dati trasferiti finora).
  • -Nord: mostra la percentuale come a totale. Questo stampa la percentuale di completamento come numero intero., con ogni nuovo aggiornamento su una nuova linea.

Ripetiamo l'ultimo comando e passiamo il -p (percentuale di completamento) opzione per pv.

tar -czf - ./file-aiuto/ | pv - P > file-aiuto.tgz

Questo disabilita tutte le altre opzioni di visualizzazione. pv fornisce solo l'elemento completo in percentuale.

Perché pv non ottiene una cifra percentuale completa di tar, la barra di avanzamento è sostituita da un indicatore in movimento. Non c'è una percentuale.

Usando pv con wc

Possiamo usare pv per reindirizzare un file di testo (o file) un wc. wc Quindi conterà i ritorni a capo, caratteri e parole e pv ci darà un rapporto sullo stato di avanzamento.

Qui stiamo convogliando tutti i file “.pagina” nella directory dei file della guida in wc.

quando wc pieno possiamo vedere il nostro conteggio del ritorno a capo (Linee), caratteri e parole di tutti i file ".page" nella cartella dei file di aiuto.

Installazione del comando di avanzamento

il progress comando dà lo stesso tipo di informazioni utili Che cosa pv, ma funziona con un set specifico di comandi Linux.

Installare progress in Ubuntu, usa questo comando:

sudo apt-get install progresso

Installare progress in Fedora, usa questo comando:

sudo dnf installazione progresso

sudo dnf installa i progressi in una vedova terminale

Installare progress a Manjaro, usa questo comando:

sudo pacman -Syu progresso

L'avanzamento del comando funziona con

Digitando progress in una finestra di terminale e premendo Invio otterrai un elenco dei comandi che progress Funziona con.

progresso

Utilizzo dei progressi con i tubi

Ci sono due tecniche che possiamo usare per monitorare i comandi con progress. Il primo è usare i tubi.

il tar comando è nell'elenco dei comandi supportati che progress può monitorare, quindi usiamo tar.

Le alternative che utilizzeremo sono quelle standard -c (creare file), -z (comprimere con gzip) e -f (nome del file) opzioni. Creeremo un file compresso di tutto ciò che è nella cartella dei file di aiuto, e il file si chiamerà "help.tgz".

Lo stiamo canalizzando in progress e usando il -m (tenere sotto controllo) opzione come questa progress continua a riferire sulla procedura fino al suo completamento.

tar -czf help.tgz ./help-files/ | progresso -m

La finestra del terminale visualizzerà lo stato di avanzamento del tar comando durante la creazione del file.

Man mano che ogni file viene elaborato, è elencato con le informazioni successive:

  • La procedura ID.
  • Il nome della procedura.
  • Percentuale completata.
  • Dati elaborati e dimensione totale del file.
  • Velocità dati (prestazione).
  • Tempo rimanente stimato (E).

Potresti essere sorpreso di vedere apparire un secondo set di dati. Questo primo set di dati è per tar. Il secondo è per gzip. tar chiama gzip per eseguire la compressione. Perché gzip è nell'elenco dei comandi supportati, progress rapporti a riguardo.

Utilizzo dei progressi in modalità di monitoraggio continuo

Puoi usare progress in una modalità di monitoraggio continuo in tempo reale utilizzando l'opzione -M (tenere sotto controllo).

Digita il seguente comando in una finestra di terminale:

progresso -M

progress segnalerà nessun comando in esecuzione per monitorare. Ma non torna alla riga di comando. progress attende l'avvio di un comando che può monitorare. Quindi inizierà automaticamente a riferire su di esso.

In un'altra finestra del terminale, scrivi un comando che si trova nell'elenco dei comandi che il progresso può monitorare.

Utilizzeremo cat. I comandi che terminano troppo velocemente non verranno registrati con progress, quindi elencheremo il contenuto di un file di testo molto grande.

cat words.page

Nella finestra del terminale con progress a, vedrai le statistiche di cat comando mentre viene eseguito e funziona fino al completamento.

quando cat finisci di elencare il file progress ritorna al suo stato di attesa.

Ogni volta che uno dei comandi su cui puoi segnalare esegue un compito considerevole, progress ti monitorerà e ti segnalerà automaticamente.

È piuttosto buono.

100% completato

Elimina le congetture dal chiederti come funziona un comando di lunga durata e prenditi una pausa dal fissare il cursore con pv e progress .

impostaTimeout(funzione(){
!funzione(F,B,e,v,n,T,S)
{Se(f.fbq)Restituzione;n=f.fbq=funzione(){n.callMethod?
n.callMethod.apply(n,argomenti):n.queue.push(argomenti)};
Se(!f._fbq)f._fbq = n;n.push=n;n.loaded=!0;n.version='2.0′;
n.coda=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(T,S) } (window, documento,'copione',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('dentro', '335401813750447');
fbq('traccia', 'Visualizzazione della pagina');
},3000);

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.