Hogyan lehet nyomon követni a Linux parancsok haladását (pv-vel és előrehaladással)

A vak repülés helyett használja a Linux pv és progress parancsait a parancs előrehaladásának nyomon követésére. Ezek a segédprogramok folyamatjelző sávokat adnak azokhoz a parancsokhoz, amelyekhez általában nincs ilyen. Látni fogja a befejezésig hátralévő becsült időt is.

Ha hosszú távú járaton utazik olyan repülőgépen, ahol nincs videó képernyő a háttámlákban, nem könnyű megtudni, milyen messze jár az utazás során. Tudod, mikor szálltál fel. Tudja, hogy várhatóan mennyi ideig tart a repülés. De honnan tudhatod, hogy jó úton haladsz-e, időben vagy nagyon lemaradsz-e a menetrendtől? Ha nem szeretné megnézni a repülés közbeni filmet, akkor általában átkapcsolhatja a videoképernyőt, hogy egy térképet mutasson a repülőgépe helyzetével. Néhány statisztikai adatot is kap, például a várható érkezési időt (ETA), ami nagyszerű.

Egy parancs indítása a terminál ablakából néha olyan érzés lehet, mint egy hosszú távú repülés videoképernyő nélkül. Semmi sem jelezheti, hogy minden rendben van-e, vagy lefagyott-e a folyamat, sem azt, hogy milyen közel van a befejezéshez. A villogó kurzor nem túl informatív.

A pv és a progress parancsok némi statisztikát és egy kis vizuális visszajelzést adnak. Láthatja, milyen közel áll a folyamat befejezéséhez. Ez azt jelenti, hogy ETA-t kap a futó folyamatokhoz. A kurzor bámulásához képest ez legyőzi a kezeket.

pv telepítése

Telepíteni kell a pv-t.

A pv Ubuntu telepítéséhez használja ezt a parancsot:

sudo apt-get install pv

A pv Fedora telepítéséhez használja ezt a parancsot:

sudo dnf install pv

A pv Manjaro telepítéséhez használja ezt a parancsot:

sudo pacman -Syu pv

pv használatával

pv jelentése pipanézegető. A csővezetéket valahol be kell vonni a parancsba. Íme egy példa, amikor egy ISO-képet zip-en keresztül továbbítunk, hogy tömörített zip-fájlt készítsünk az ISO-ból.

Ahhoz, hogy a parancsok lelassítása kellőképpen lelassuljon ahhoz, hogy képernyőképet lehessen készíteni, a cikkben használt példákban szereplő fájlok egy része egy régi, lassú, külső USB-n, amelyet SILVERXHD-n tárolt.

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

pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso |  zip > gparted.zip egy terminálablakban” width=”646″ height=”77″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”  oneror=”this.onrror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”></p>
<div style=

A pv által közölt információ a kijelző alsó sorában látható.

Balról jobbra a következő információk jelennek meg:

Az eddig átvitt adatok.
Messzire eltelt az idő.
Az adatátviteli sebesség (áteresztőképesség).
Egy folyamatjelző sáv és egy százalékos kitöltött ábra.
A befejezésig hátralévő becsült idő (ETA).

Fájl másolása pv-vel

A pv kimenetű fájl másolásához használja ezt a parancsot:

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

A fájl másolásakor állapotjelentést kapunk.

Több fájl másolása pv-vel

Több fájl és mappa pv-vel történő másolásához egy kis trükköt kell használnunk. A tar segítségével mozgatjuk a fájlokat helyettünk.

tar -c help-files/ | pv | tar -x -C Documents/

A parancs tar -c help-files/ része arra utasítja a tar-t, hogy hozzon létre (-c) egy archívumot a help-files mappában lévő fájlokból. Ezt pv-n keresztül vezetjük, hogy megjelenítsük az előrehaladást. Ezután a parancs utolsó részéhez visszakerül a tar-ba. Az archívum kibontása (-x) és a könyvtár (-C) a Dokumentumok értékre változik a kibontás előtt.

Így a súgófájlban lévő fájlok és mappák a Dokumentumok mappába másolódnak, folyamatjelzővel.

A kimenet ezúttal kissé eltér.

Nem kapunk ETA-t. A folyamatjelző sáv most egy mozgó jelzőt jelenít meg. Azt mutatja, hogy a folyamat aktív, de nem növekszik balról jobbra, mint egy hagyományos folyamatjelző sáv. A pv a folyamatban lévő folyamatból kinyerhető információk megjelenítésére korlátozódik.

A pv és a tar használata archívum létrehozásához

A fájlok pv és tar segítségével történő másolása nem hagy archív fájlt. A tar egyfajta „virtuális” archívumot hoz létre, amelyet közvetlenül a tar-ba táplálunk vissza a fájlok kibontásához. Ha a célunk a fájlok másolása, akkor ez teljesült. De mi van akkor, ha archív fájlt akarunk létrehozni?

Továbbra is használhatjuk a tar-t archív fájl létrehozására és előrehaladási jelentés beszerzésére a pv-től. A tar esetén a -c (archívum létrehozása), -z (tömörítés gzip-pel) és -f (az archívum fájlneve) opciók használhatók.

Ne feledje, hogy a – fájlt használjuk fájlnévként, ami a tar használatát okozza stdout, és kiírja a kimenetét a terminálablakba. Nem látjuk ezt a kimenetet, mert pv-n keresztül van vezetékezve.

  A Windows 10 lehetővé teszi az egyéni Linux kernel betöltését

Az archívum tényleges neve az a fájlnév lesz, amelybe a pv kimenetét továbbítjuk. Ebben az esetben ez a „help-files.tgz”.

tar -czf - ./help-files/ | pv > help-files.tgz

tar -czf - ./help-files/ |  pv > help-files.tgz egy terminálablakban” width=”646″ height=”57″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”  onror=”this.onrror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”></p>
<p>Ugyanazokat a folyamatjelzőket kapjuk, mint korábban, és az archív fájl létrejön helyettünk.</p>
<p> < p><img loading=

A pv megjelenítési beállítások

Számos lehetőség van a pv-vel a jelentés részleteinek módosítására.

Ha ezen opciók bármelyikét használja, az összes többi opció ki lesz kapcsolva. Tehát ha a megjelenítési lehetőségek közül hármat szeretne használni, akkor ezt a három lehetőséget meg kell adnia.

A pv használata opciók nélkül ugyanaz, mint a -pterb opciók használata.

-p: a kész százalékos arány megjelenítése. Ez a folyamatjelző sáv és a teljesítés százalékos aránya.
-t: az eltelt idő megjelenítése.
-e: az ETA megjelenítése.
-r: az adatátvitel sebességének megjelenítése.
-b: megjeleníti a bájtszámot (eddig átvitt adatok).
-n: a százalékot egész számként jeleníti meg. Ez a kitöltött százalékos arányt egész számként írja ki, minden új frissítéssel egy új sorban.

Ismételjük meg az utolsó parancsot, és adjuk át a -p (teljesített százalék) opciót a pv-nek.

tar -czf - ./help-files/ | pv - p > help-files.tgz

tar -czf - ./help-files/ |  pv - p > help-files.tgz terminálablakban” width=”646″ height=”57″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”  oneror=”this.onrror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”></p>
<p>Ez kikapcsolja az összes többi megjelenítési lehetőséget.  A pv csak a százalékosan elkészült elemet adja meg.</p>
<p>Mivel a pv nem kap százalékos teljesített ábrát a tarból, a folyamatjelző sávot egy mozgó jelző váltja fel.  Nincs százalékos érték.</p>
<p><img loading=

pv használata wc-vel

A pv-t használhatjuk szöveges fájl (vagy fájlok) wc-be történő továbbítására. A wc ezután megszámolja a kocsi visszatéréseket, a karaktereket és a szavakat, és a pv jelentést ad nekünk az előrehaladásról.

Itt a help-files könyvtárban található összes „.page” fájlt a wc-be helyezzük.

Amikor a wc befejeződött, láthatjuk a kocsivisszaadások számát (sorokat), karaktereket és szavakat az összes „.page” fájlból a help-files mappában.

Az előrehaladás parancs telepítése

A progress parancs ugyanezt adja hasznos információ pv-ként, de működik egy adott Linux-parancskészlettel.

A progress Ubuntu telepítéséhez használja ezt a parancsot:

sudo apt-get install progress

A Fedora folyamatának telepítéséhez használja ezt a parancsot:

sudo dnf install progress

A Manjaro folyamatának telepítéséhez használja ezt a parancsot:

sudo pacman -Syu progress

A parancsok haladása együtt működik

Ha beírja a folyamatot egy terminálablakba, és megnyomja az Enter billentyűt, megjelenik azon parancsok listája, amelyekkel a haladás működik.

progress

A Progress with Pipes használata

Két technikát használhatunk a parancsok előrehaladásának figyelésére. Az első a csövek használata.

  A Fedora Linux frissítése

A tar parancs szerepel a támogatott parancsok listájában, amelyeket a folyamat figyelni tud, ezért használjuk a tar parancsot.

A szokásos -c (archívum létrehozása), -z (tömörítés gzip-pel) és -f (fájlnév) opciókat fogjuk használni. Létre fogunk hozni egy tömörített archívumot a súgófájl mappában található összesről, és az archívum neve „help.tgz”.

Ezt beépítjük a folyamatba, és a -m (monitor) opciót használjuk, így a haladás folyamatosan jelentést készít a folyamatról, amíg az be nem fejeződik.

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

A terminálablak mutatja a tar parancs előrehaladását az archívum létrehozásakor.

A feldolgozás során minden fájl megjelenik a listában, a következő információkkal:

A folyamat azonosítója.
A folyamat neve.
Elvégzett százalék.
A feldolgozott adatok és a fájl teljes mérete.
Adatátviteli sebesség (áteresztőképesség).
Becsült hátralévő idő (ETA).

Meglepődhet, amikor megjelenik egy második adatkészlet. Ez az első adatkészlet a tar-ra vonatkozik. A második a gzip-hez való. A tar meghívja a gzip-et a tömörítés végrehajtásához. Mivel a gzip szerepel a támogatott parancsok listáján, előrehaladási jelentések készülnek róla.

Folyamatos figyelési módban a Haladás használata

A haladást valós idejű folyamatos monitorozási módban használhatja a -M (monitor) opció használatával.

Írja be a következő parancsot egy terminálablakba:

progress -M

A folyamat azt jelenti, hogy nem futnak a megfigyeléshez szükséges parancsok. De nem kerül vissza a parancssorba. A folyamat megvárja, amíg el nem indul egy parancs, amelyet figyelni tud. Ezután automatikusan jelentést készít róla.

Egy másik terminálablakban írjon be egy parancsot, amely azon parancsok listájában szerepel, amelyek a folyamatot figyelni tudják.

Macskát fogunk használni. A túl gyorsan lefutott parancsok nem fognak regisztrálni a haladással, ezért egy nagyon hosszú szöveges fájl tartalmát listázzuk ki.

cat words.page

A folyamatot tartalmazó terminálablakban láthatja a cat parancs statisztikáit, amint az végrehajtódik és a befejezés felé halad.

Amikor a cat befejezi a listázást, a fájl folyamata visszatér a várakozási állapotba.

Minden alkalommal, amikor az egyik parancs, amelyről jelentést tud tenni, jelentős feladatot hajt végre, a haladás automatikusan figyeli és jelentést készít róla.

Ez elég ügyes.

100%-ban kész

Vegye ki a találgatást, és azon tűnődjön, hogyan működik egy régóta futó parancs, és tartson egy kis szünetet a kurzor szemlélésében a pv és a progress billentyűkkel.