Overzicht
pv leest gegevens van standaardinvoer en stuurt deze door naar standaarduitvoer, terwijl het de gegevensstroom meet en de voortgang op de terminal weergeeft. Dit is vooral handig voor langdurige taken zoals het kopiëren van grote bestanden, comprimeren of netwerkoverdrachten.
Belangrijkste functies
- Weergave van realtime gegevensdoorvoer
- Weergave van de totale hoeveelheid verzonden gegevens
- Voortgangsbalk en geschatte voltooiingstijd (ETA)
- Functie voor het beperken van de datasnelheid
Belangrijkste opties
De belangrijkste opties van het pv-commando worden gebruikt voor het weergeven van gegevens, het beperken van de snelheid, het specificeren van de grootte, enz.
Weergave en controle
Gegenereerde opdracht:
Probeer de opdrachtcombinaties.
Uitleg:
`pv` Voer het commando uit.
Combineer deze opties en voer de opdracht virtueel uit met de AI.
Gebruiksvoorbeelden
Diverse voorbeelden van gegevensoverdracht en monitoring met het pv-commando.
Basisvoortgangsmonitoring
dd if=/dev/urandom bs=1M count=100 | pv > /dev/null
Controleert de voortgang door gegevens gegenereerd door het dd-commando naar /dev/null te sturen met pv.
Voortgang van bestandskopie monitoren
pv large_file.iso > copied_file.iso
Toont de voortgang bij het kopiëren van een groot bestand met pv. (Vervang door het daadwerkelijke bestandspad)
Datasnelheid beperken
dd if=/dev/zero bs=1M count=500 | pv -L 1m > /dev/null
Monitort de voortgang terwijl de datasnelheid wordt beperkt tot 1 MB per seconde.
Voortgang van compressie monitoren
tar -czf - my_directory | pv -s $(du -sb my_directory | awk '{print $1}') > archive.tar.gz
Controleert de voortgang met pv bij het comprimeren van een map met tar en gzip. (Vervang door het daadwerkelijke map-pad)
Nauwkeurige ETA verkrijgen door totale grootte te specificeren
dd if=/dev/urandom bs=1M count=500 | pv -s 500M > /dev/null
Geeft pv de totale gegevensgrootte van 500 MB om een nauwkeurigere voortgang en geschatte voltooiingstijd te verkrijgen.
Installatie
pv is niet standaard inbegrepen in de meeste Linux-distributies, dus u moet het installeren via een pakketbeheerder.
Installatiecommando's
Installatiecommando's per besturingssysteem.
- Debian/Ubuntu: sudo apt update && sudo apt install pv
- CentOS/RHEL/Fedora: sudo yum install pv of sudo dnf install pv
- Arch Linux: sudo pacman -S pv
- macOS (Homebrew): brew install pv
Tips & Aandachtspunten
Tips en aandachtspunten voor het effectiever gebruiken van pv.
Gebruikstips
- **Invoegen in het midden van een pijplijn**: U kunt pv in het midden van een pijplijn plaatsen in de vorm `command1 | pv | command2` om de voortgang van een specifieke stap te monitoren.
- **Gebruik -s voor nauwkeurige ETA**: Door de totale grootte dynamisch op te geven, zoals met `pv -s $(du -sb large_dir | awk '{print $1}')`, kunt u een nauwkeurigere ETA verkrijgen.
- **Bandbreedtebeheer met snelheidslimiet**: Bij netwerkoverdrachten kunt u de bandbreedte aanpassen met de optie `-L` om de impact op andere services te verminderen.
- **Direct monitoren van bestanden**: Door een bestandsnaam als argument op te geven, zoals `pv file.ext`, kunt u de leesvoortgang van dat bestand monitoren.
Aandachtspunten
- **Bufferproblemen**: Sommige commando's voeren zelf buffering uit, waardoor de voortgang van pv anders kan worden weergegeven dan verwacht. In dat geval moet u de bufferingsopties van dat commando controleren.
- **Interferentie met terminaluitvoer**: Omdat pv continu voortgangsinformatie op de terminal weergeeft, moet u mogelijk opties zoals `-q` (quiet) gebruiken om de uitvoer te onderdrukken bij gebruik van pv in scripts.