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.
Tartalomjegyzék
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
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.
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
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
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 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.