Zoeken op website

Pv - Voortgang tonen voor [kopiëren/back-up/comprimeren] gegevens in Linux


Wanneer u back-ups maakt en grote bestanden op uw Linux-systeem kopieert/verplaatst, wilt u wellicht de voortgang van een lopende bewerking volgen. Veel terminaltools hebben niet de functionaliteit waarmee u voortgangsinformatie kunt bekijken wanneer een opdracht in een pipe wordt uitgevoerd.

In dit artikel zullen we kijken naar een belangrijk Linux/Unix-commando genaamd pvPipe Viewer.

Pv is een terminalgebaseerd hulpmiddel waarmee u de voortgang kunt volgen van gegevens die door een pijpleiding worden verzonden. Wanneer u de opdracht pv gebruikt, krijgt u een visuele weergave van de volgende informatie:

  • De tijd die is verstreken.
  • Het voltooide percentage bevat een voortgangsbalk.
  • Toont de huidige doorvoersnelheid.
  • Het totale aantal overgedragen gegevens.
  • en de ETA (geschatte tijd).

Hoe pv Commando in Linux te installeren?

De opdracht pv wordt op de meeste Linux-distributies niet standaard geïnstalleerd. Daarom kunt u deze installeren door de onderstaande stappen te volgen.

Installeer pv op RHEL-gebaseerde Linux

Eerst moet u de EPEL-repository inschakelen en vervolgens de volgende yum- of dnf-opdracht uitvoeren om deze te installeren.

yum install pv
OR
dnf install pv          

Installeer pv op Debian-gebaseerde Linux

sudo apt-get install pv

Installeer pv op andere Linux-distributies

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]    

Hoe gebruik ik pv Commando in Linux?

pv wordt meestal gebruikt met andere programma's die niet de mogelijkheid hebben om de voortgang van een lopende operatie te monitoren. U kunt er gebruik van maken door het in een pijplijn tussen twee processen te plaatsen, waarbij de juiste opties beschikbaar zijn.

De standaardinvoer van pv wordt doorgegeven aan de standaarduitvoer en de voortgang (uitvoer) wordt afgedrukt op de standaardfout. Het vertoont een soortgelijk gedrag als het cat-commando in Linux.

De syntaxis van het pv commando is als volgt:

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

De opties die worden gebruikt met pv zijn onderverdeeld in drie categorieën: weergaveschakelaars, uitvoermodificatoren en algemene opties.

Opties voor PV-weergavemodificaties

Sommige opties staan onder weergavemodifiers.

  • Gebruik de optie -p om de weergavebalk in te schakelen.
  • Om de verstreken tijd te bekijken, gebruikt u de optie --timer.
  • Om de ETA-timer in te schakelen, die probeert te raden hoe lang het duurt voordat een bewerking is voltooid, gebruikt u de optie --eta. De schatting is gebaseerd op eerdere overdrachtssnelheden en de totale gegevensgrootte.
  • Om een tariefteller in te schakelen, gebruikt u de optie --rate.
  • Om de totale hoeveelheid tot nu toe overgedragen gegevens weer te geven, gebruikt u de optie --bytes.
  • Om voortgangsinformatie met een geheel getalpercentage weer te geven in plaats van een visuele indicatie, gebruikt u de optie -n. Dit kan handig zijn als je pv gebruikt met het dialoogcommando om de voortgang in een dialoogvenster weer te geven.

Opties voor PV-weergavemodificaties

Sommige opties bevinden zich onder uitvoermodificatoren.

  • Om te wachten tot de eerste byte is overgedragen voordat voortgangsinformatie wordt weergegeven, gebruikt u de optie --wait.
  • Om aan te nemen dat de totale hoeveelheid gegevens die moet worden overgedragen uit SIZE bytes bestaat bij het berekenen van het percentage en de verwachte aankomsttijd, gebruikt u de --size SIZE optie.
  • Om seconden tussen updates op te geven, gebruikt u de optie --interval SECONDS.
  • Gebruik de optie --force om een bewerking te forceren. Deze optie dwingt pv om beelden weer te geven als de standaardfout geen terminal is.
  • De algemene opties zijn --help om gebruiksinformatie weer te geven en –version om versie-informatie weer te geven.

Pv-opdracht met voorbeelden in Linux

1. Als er geen optie is opgenomen, worden pv commando's uitgevoerd met de standaard -p, -t, -e, -r en -b opties.

Als u bijvoorbeeld het bestand opensuse.vdi naar /tmp/opensuse.vdi wilt kopiëren, voert u deze opdracht uit en bekijkt u de voortgangsbalk in de screencast.

pv opensuse.vdi > /tmp/opensuse.vdi

2. Om een zip-bestand te maken van uw /var/log/syslog-bestand, voert u de volgende opdracht uit.

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

3. Om het aantal regels, woorden en bytes in het bestand /etc/hosts te tellen terwijl alleen de voortgangsbalk wordt weergegeven, voert u onderstaande opdracht uit.

pv -p /etc/hosts | wc

4. Controleer de voortgang van het maken van een back-upbestand met behulp van het tar-hulpprogramma.

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

5. In het voorbeeld gebruiken we de dd-opdracht om het ISO-bestand naar de USB-flashdrive te schrijven:

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

6. Gebruik de terminalgebaseerde tool pv en dialog samen om als volgt een dialoogvoortgangsbalk te maken.

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

Samenvatting

Dit is een goede terminalgebaseerde tool die je kunt gebruiken met tools die niet de mogelijkheid hebben om de voortgang van bewerkingen te volgen, zoals het kopiëren/verplaatsen/back-uppen van bestanden. Voor meer opties kijk je op man pv .

Ik hoop dat je dit artikel nuttig vindt en dat je een reactie kunt plaatsen als je ideeën hebt om toe te voegen over het gebruik van de opdracht pv. En als u fouten krijgt tijdens het gebruik, kunt u net zo goed een reactie achterlaten.