UNIX belsejében a szállítószalag

Ez a tartalom egy sorozat része: UNIX használata

Stay tuned a közelgő cikkek ebben a sorozatban.

Az egyik legintelligensebb és erőteljes innováció UNIX shell. Ez sokkal hatékonyabb, mint a grafikus felület, és lehetővé teszi, hogy hozzon létre szkripteket automatizálására sok feladat. Sőt, segítségével az utasítás csővezeték lehet kialakítani improvizált programot közvetlenül a parancssorból. A szállítószalag összegyűjti a parancsokat a láncban, amelyben a standard kimenetre egy válik szabványos parancs bemenet a következő parancsot.







Gyakran használt rövidítések
  • GUI: Grafikus felhasználói felület (grafikus felhasználói felület)

De a csővezeték van egy komoly hátránya: ez olyan, mint egy fekete doboz. Amikor csatlakoztatja a két csapat, az egyetlen jele a végrehajtási folyamat kimeneti által generált utolsó parancs a sorozatban. Lehet illeszteni a sorrend a parancs pólót. valamint betartani a növekedés a kimeneti fájlt a farkát. de ezek a megoldások jól működik csak egy alkalmazás egy csapatban, különben a standard kimenetre (stdout) és standard hibát (stderr) különböző szakaszokban összekeverjük. Ezen kívül mindkét megoldás durva mutató, ami valószínűleg nem fog megjelenni, de a valóságban a szükséges számításokat minden egyes lépésnél.

Persze, akkor törni egy komplex parancsokat, hogy több különálló lépések, amelyek mindegyike generál saját kimeneti fájlt. Sőt, ha azt szeretné, hogy ellenőrizze az eredményt az egyes intervallumok, bomlás az ideális megoldás. Hozzon létre egy szkript, amely külön adatfájlt, és használni, mint egy bemenet minden egyes lépés a következő lépésre, stb Az eredmény egy olyan fájl a végső eredményt. Ez a gyakorlat azonban rosszul van alkalmas arra, hogy az improvizációs jellegét a parancssorban.

Amire szükségünk van - jelzi a haladás, a feladat, amely beilleszthető a parancssor adatátviteli sebesség mérésére. Ideális esetben jó lenne, hogy ezt a mutatót újra összehasonlítani a teljesítményét minden egyes lépésnél. Nos, mivel nincs határa a tökéletesség, ez jó, hogy ez egy nyílt forrású eszköz, amely együttműködik a különböző UNIX változatok, mint például Linux, és Mac OS X

Minden vágyunk teljesül Pipe Viewer programot (pv), írta a rendszergazda Andrew Wood (Andrew Wood) és javult az elmúlt négy évben sok más fejlesztők. Ez lehetővé teszi, hogy belenézel a „cső” a parancssorba. Amint a honlapon a projekt. pv „lehet beilleszteni a csővezeték két folyamat, hogy készítsen egy vizuális jelzése, hogy milyen gyorsan adat át közöttük, hogy mennyi idő telt el, és milyen közel a vége a munkát.” Vegye figyelembe, hogy segítségével mérjük a relatív teljesítményét pv többször ugyanabban a parancsokat.

Ez a cikk leírja, hogyan kell építeni pv azok UNIX-rendszer, és használja az egyszerű és összetett kombinációi parancssori eszközök. Kezdjük egy áttekintést arról, hogy az eljárások egymással kommunikálni ezeken keresztül csővezetékek.

Szállító UNIX: vezetéken folyamatok

Az 1. ábra a létrehozásának lépéseit csővezeték köti össze a két független folyamat.

1. ábra létrehozása csővezeték összeköti a két folyamat

Az elején, az 1. szakaszban, a kezdeményező folyamat adatokat olvas az stdin-ről. kiadja az eredményt a szabványos kimenetre. és hibák stderr. stdin. stdout és stderr vannak fájlleírók. Minden műveletet hajtunk végre a fájl leíró, például nyitott. olvasni. levelet. visszatekerés. csonkolni vagy közeli. megváltoztatja az állam a fájlt.

Ezután, a 2. fázisban, a folyamat-szállítószalag teremt iniciátor. A szállítószalag áll egy szakasz, és két fájlleírók. Egy kell, hogy az adatokat a sorban, a másik -, hogy eltávolítsuk azokat a sorból. A szállítószalag egy FIFO-típusú adatstruktúrát (first in - first out).

Önmagában a szállítószalag nem sok haszna van; az a célja, hogy összekapcsolják a folyamatot, és a folyamat a szolgáltató-felhasználó (adatbázis). Ezért a folyamat fázisát 3 villát vagy létrehoz egy folyamat, amely párosítható.

Fázisok 1-4 illusztrálják, hogy a hüvely csatlakozik egy csővezeték (|) két segédprogram egymáshoz a parancssorban. Megjegyezzük, csak az, hogy a héj létrehoz egy új eszköz minden folyamat, és ő kezeli a munka előrehaladásáról.

Például a 2. ábra mutatja, hogyan kell csatlakoztatni keresztül továbbító talál parancsot. grep és wc. megtalálni és számolja meg a fájlokat, akiknek a neve kezdődik a levél egy kisbetűvel. A héj független marad; következtetés find szolgál bemeneti folyam grep. az eredménye, ami viszont elküldte a csapat wc. wc fogantyúk nyert grep adattal, és kiadja az eredményt a standard kimenetre. Normális esetben a héj kijelzők stdoutra a terminál, de ez is átirányítható egy fájlba.

2. ábra: Elhelyezés a csapat segítségével szállítószalagok

Ha azt szeretnénk, hogy vizsgálja meg a munkáját két UNIX folyamatok létrehozása két szállítószalag és felülírják fájlleírókkal folyamatokat, hogy azok egymás adatait, és a szállító és a vevő. A 3. ábra az adatcsere folyamatok között, ahol mindkét folyamat újradefiniálásra folyamok stdin és stdout.

3. ábra vizsgálja két UNIX folyamat






Készítettünk egy rövid áttekintést a szállítószalagok, most vessünk egy közelebbi pillantást a Pipe Viewer segédprogramot.

Pipe Viewer: méltó szállítószalag

Pipe Viewer - egy nyílt forráskódú alkalmazás. Tudod letölt a kódot, és épít az alkalmazás a semmiből, vagy töltse le a futtatható fájlt a tárolóból a UNIX forgalmazás, ha az elérhető.

1. lista A kód beállítása Pipe Viewer

Letölteni egy futtatható fájlt a program pv adattár, megtalálja keresztül a csomagkezelő a disztró csomagok szerinti pv vagy a cső nézőt. Például az Ubuntu 9 keresést az APT csomagkezelő a következő eredményt adja:

Töltse le és telepítse a csomagot a csomag vezetője. Az Ubuntu ez apt-get install parancsot.

Most próbáljuk pv akcióban. A legegyszerűbb mód, használja pv helyettesítheti a hagyományos cat segédprogramot átvitelére bájt egy másik programot, és mérjük a teljes termelékenységet. Például, lehet használni a pálya hosszú pv tömörítési művelet:

Amikor elkezd pv megjelenít egy folyamatjelző sáv, amely azt mutatja, és folyamatosan frissíti a különböző mutatók végrehajtási munkát. Pv általában balról jobbra jelenik meg az összeg a feldolgozott adatok, az eltelt időt, a termelékenység megabájt másodpercenként, valamint a vizuális és numerikus ábrázolása elvégzett munka mennyiségét és értékeli a fennmaradó időt. A 96.1MB a 109MB fenti példában feldolgozásra kerül, a fennmaradó 13% a fájl esetén kb 9 másodperc

Pv alapértelmezett megjeleníti az összes jelzőket, milyen értékeket lehet számítani. Például, ha a bemeneti pv fájlt sem, vagy manuálisan állítsa be a pontos méret, az állapotjelző sáv mozog balról jobbra, hogy megjelenítse egy alkalmazás aktivitása, de pv nem tudja meghatározni a százalékos munkát. Például:

Ez a példa tar parancs a távoli gépen. amelynek eredményét elküldik a helyi rendszer projectx.tar fájlt. Mivel pv nem tudja kiszámítani a bájtok számát át kell adni, azt mutatja a teljesítményt az eltelt időt, és egy különleges jellemző mutató a tevékenység a kérelmet. Ez egy kis indikátor ( <=> ), Ami mozog balról jobbra, mint az adatátvitelt.

Paraméter --wait elhalasztja kijelző állapotjelző, amíg a tényleges átvételét az első bájt. Itt --wait hasznos ssh parancs kéri a jelszót.

Akkor is mutatói a saját, rámutatva a zászlókat a felszólalók nevét:

A parancs segítségével --bytes zászló benne kijelző a átvitt bájtok számát. Szintén van lehetőség, --progress. --timer. --eta. --rate és --numeric. Ha megad egy vagy több ilyen lehetőség, az összes többi (nem specifikált) mutatók automatikusan kikapcsol.

Van egy másik egyszerű alkalmazása pv. --rate-limit beállítás korlátozza a sávszélességet. Ez a paraméter veszi érvek egy szám és egy utótag jelzi a készülék. Például, m jelentése a száma megabájt másodpercenként:

Az előző parancs letiltja az összes mutató (--quiet), és korlátozza az átviteli sebessége 1 MB / s.

A bonyolultabb használata Pipe Viewer

Eddig mi példát, hogy csak egyetlen példányt a Pipe Viewer, amely működött a szállító vagy a vevő adatait egy pár csapatok. Azonban, lehetséges bonyolultabb kombinációival. Az alábbi néhány feltétel, akkor több példányai pv egyetlen parancssorban. Nevezetesen, akkor kell használni a --name adhatjuk meg azt a neve minden egyes példánya pv és lehetővé többsoros üzemmódba --cursor paramétert. Együtt a két paraméter elemzi hozzon létre egy sor mutató, egyik mutatója a mintára (program).

Például szeretnénk követni egyszerre és külön-külön dolgozza fel az adatokat, és a tömörítés. Mi hozzá egy példánya pv első művelet, és egy másik - a második:

A jelszó megadása után, azt látjuk, hogy Pipe Viewer megmutatja kétsoros kijelző a tevékenység:

Az első sorban jelzett ssh, mely jelzi a adatátvitelt. A második sorban jelzett gzip, mely jelzi a tömörítés. Mivel egyik csapat nem tudja meghatározni azt az adatmennyiséget a tevékenységében az egyes vonal mutatja az átvitt adatok mennyisége, és a tevékenység mutatója.

Ha tudja, vagy tudja becsülni vagy térfogatának kiszámításához által feldolgozott adatok a művelet, akkor --size opciót. Azáltal, hogy ezt a lehetőséget, akkor kap több információt a folyamatban mutatók.

Például, ha azt akarjuk, hogy kövesse nyomon a nagy mentési feladatot, akkor más UNIX segédprogramok megbecsülni a teljes mérete a forrás fájlokat. df használatával tudja mutatni a statisztikák a teljes fájlrendszert, és du tudja számítani a méret a hierarchia tetszőleges mélységű fájl:

Itt a parancsokat du -sh munka | vágja -F1 adja a teljes mérete a dolgozó könyvtár kompatibilis formátumban pv. Du -h generál parancsot adatok olvasható formátumban, mint például a 17M 17 megabájt, amely alkalmas a pv. (Ls és a df parancsok is támogatja -h kapcsoló kimeneti adat olvasható formátumban). Mivel most pv arra számít, hogy a csővezetéken keresztül kerül át egy bizonyos számú bájt, akkor megjeleníti a teljes állapotjelző sáv:

Végül, van egy másik módszer, ami biztosan hasznos az Ön számára. Amellett, hogy a számolás bájt, Pipe Viewer képzeli a haladás, a művelet számolva az adatsort. Ha megadja --line módú módosítót. majd pv frissíti az állapotjelző sáv minden alkalommal, amikor találkozol egy új sort. Azt is megadhatja paraméter --size. majd a számot, értelmezi a várható sorok száma.

Vegyünk egy példát. A find parancs gyakran hasznos, ha meg kell találni egy tűt a szénakazalban, például, hogy megtalálja azokat a helyeket, ahol nagy mennyiségű használt kód egy bizonyos rendszer hívást. Ezekben az esetekben, akkor egy hasonló parancsot:

Ez a kód -lel forráskód C, és visszaadja a fájlnevek, amely megfelel a fopen vonalon. A munka eredményeként arra irányul, hogy a fájl neve eredményeket. Ahhoz, hogy tevékenységét tükrözik, hogy adjunk egy parancsot pv.

Húr Mode fenomenális, mert sok UNIX parancsokat, mint a lelet. működnek metaadatfájlokat, de a tartalmuk. Húr mód ideális rendszerfelügyelet scriptek másolni vagy tömöríteni a nagy mennyiségű fájlt.

Általában Pipe Viewer lehet illeszteni a parancssor és a szkriptek, amikor csak lehetséges mérni adatátviteli sebességet. Néha szükség van a kreativitásra - például a sebességet mérni a másolás egy könyvtárat, akkor kapcsoljuk be a CP-Pr a tar.

Továbbá, string mód is használható, ha dolgozik, hálózati eszközök, mint a wget. göndör, és scp. Például, lehet használni megjelenítésére pv végző az átviteli folyamat ismert térfogatú adatokat egy távoli gép. És mivel sok hálózati segédprogramok is beolvassa fájlból, akkor a fájl méretét érvként beállítására --size.

kis gyöngyszem

Pipe Viewer - ez egyike azoknak a kevéssé ismert drágakő, amely nélkül, miután megismerik őket egy nap, már nem lehet csinálni. Talán meg fogja találni számos módon lehet használni pv a napi munkában a parancssorban, de a legvalószínűbb, meg fogja találni egy csomó lehetőséget annak alkalmazása az automatizálás forgatókönyveket. Ahelyett, hogy bámulja a villogó kurzort, türelmesen várni bármely jel, hogy minden rendben van, akkor az érzékelőt, hogy információt szerezzenek az alkalmazás valós időben. Pipe Viewer lehetővé teszi, hogy hallja a dobogó szív a gép.

Letölthető Resources

Kapcsolódó témák

  • Beszéd UNIX: Bepillantás csövek - az eredeti cikk (EN).
  • További információ a UNIX héj. (EN)
  • A developerWorks AIX és UNIX részben, akkor mindig talál egy csomó referenciaanyagok kapcsolatos minden szempontból AIX rendszerek üzemeltetése. (EN)
  • Tudjon meg több információt a Pipe Viewer és töltse le. (EN)