Hoe de voortgang van lopende commando's in Linux te controleren
Soms neemt het cp
commando tijdens het kopiëren van een groot bestand, zoals een film of een besturingssysteemafbeelding, langer uit dan verwacht op basis van de belasting van uw systeem. Omdat het de voortgang van de operatie niet vertelt, wordt het moeilijk om te begrijpen wat er precies gebeurt.
In scenario's als deze zou een commando zoals cv
een grote hulp kunnen zijn, omdat het niet alleen de voortgang van de bewerking laat weten, maar ook de resterende tijd kan weergeven. In dit artikel bespreken we de opdracht samen met enkele handige voorbeelden.
Invoering
De cv
opdracht is een hulpprogramma dat specifiek kijkt naar kernutils-basisopdrachten, zoals cp
, mv
, dd
, tar
, cat
en meer, die momenteel op uw systeem worden uitgevoerd en hun voortgangspercentage wordt weergegeven. Hoewel het Linux-specifiek is, is er ook een Mac OSX-poort beschikbaar.
Download en installeer
Om de cv
opdracht te downloaden en installeren, gaat u naar de Github-repository en downloadt u het bronpakket (de naam van het gedownloade bestand in mijn geval was "cv-master.zip"). Eens klaar, pak je de bestanden uit met de volgende opdracht:
unzip cv-master.zip
Voer de map "cv-master" in en voer de volgende opdrachten uit om het pakket te bouwen en het binaire bestand te installeren:
make make install
Houd er rekening mee dat de opdracht cv
afhankelijk is van de bibliotheek "ncurses", dus het kan zijn dat u overeenkomstige pakketten moet installeren die u kunt uitvoeren door de volgende opdracht uit te voeren:
sudo apt-get install ncurses-dev
Een ander punt dat de moeite van het vermelden waard is, is dat na de installatie het binary naar "/ usr / local / bin" gaat, dus zorg ervoor dat het pad aan je systeemomgeving wordt toegevoegd, anders zal je shell de opdracht niet vinden als je loopt het. Een alternatief zou zijn om uw huidige map te wijzigen in "/ usr / local / bin" en vervolgens de opdracht op de volgende manier uit te voeren:
./CV
Gebruik
Hier zijn enkele voorbeelden van hoe deze opdracht kan worden gebruikt:
Opmerking : alle voorbeelden in dit artikel zijn getest op Ubuntu 14.04.
Een eenvoudig voorbeeld
Omdat de opdracht cv
de voortgang weergeeft van andere opdrachten die worden uitgevoerd, moet er een opdracht zijn die voldoende lang loopt zodat de opdracht cv
alles kan weergeven. Ik probeerde bijvoorbeeld een enorm bestand van mijn pen-drive naar mijn Linux-box te kopiëren en terwijl de cp
opdracht werd uitgevoerd, schakelde ik onmiddellijk over naar een ander shell-tabblad en voerde het volgende commando uit:
./CV
De opdracht gaf de volgende uitvoer weer:
Het eerste veld in de uitvoer is de PID van het commando dat wordt bewaakt, gevolgd door het commando en de voortgang in percentage en aantallen. Een punt dat opvalt is dat de eerste regel in de uitvoer van de cv
opdracht ( cat inactive/flushing/streaming/...
) standaard is - ik heb de code gecontroleerd en geconstateerd dat de regel onder bepaalde voorwaarden wordt afgedrukt, die blijkbaar altijd hit (we kunnen het nu negeren).
Als er meer dan één opdracht actief is, geeft de opdracht cv
de voortgang weer die aan alle opdrachten is gerelateerd. Hier is bijvoorbeeld de uitvoer met twee opdrachten die worden uitgevoerd:
Ontvang een geschatte I / O-doorvoer en ETA
Hoewel het handig is om de voortgang van een opdracht te kennen, is het nog handiger als u andere informatie leert kennen, zoals de resterende tijd of ETA. Hiervoor biedt de opdracht cv
de optie -w
opdrachtregel.
Bijvoorbeeld toen het volgende commando werd uitgevoerd:
./cv -w
de volgende uitvoer werd getoond:
[9287] cp / media / himanshu / F58B-9AA9 / casper-rw 10, 3% (105, 2 MiB / 1 GiB) 27, 9 MiB / s eta 0:00:32
De laatste twee velden in de uitvoer, die de geschatte I / O-doorvoer en ETA vertegenwoordigen, duiden aan dat de kopieerbewerking vordert met een snelheid van 27, 9 MB per seconde, en het duurt 32 seconden om te voltooien.
Loop het commando
Tijdens het gebruik van de opdracht cv
, zult u merken dat de voortgangsdetails op dat moment worden weergegeven en vervolgens worden beëindigd. Om ervoor te zorgen dat cv
niet eindigt totdat de opdracht die wordt bewaakt wordt beëindigd, gebruikt u de optie -m
.
cv -m
Dit zorgt ervoor dat de cv
opdrachtlussen terwijl bewaakte processen nog steeds actief zijn.
Conclusie
De cv
opdracht kan een troef zijn voor degenen die te maken hebben met het overbrengen van zware bestanden of andere tijdrovende bewerkingen op de Linux-opdrachtregel. Het is onnodig om te zeggen dat als je open source bent, je de manier waarop het interacteert en werkt kunt veranderen door wijzigingen aan te brengen in de codebasis, die vrij klein en gemakkelijk te begrijpen is.
Heb je ooit cv
of een ander soortgelijk commando gebruikt? Hoe was je ervaring? Deel uw mening in de reacties hieronder.