ПредишенСледващото

Това съдържание е част от поредица: UNIX ползване

Останете на линия за предстоящите статии в тази серия.

Един от най-интелигентен и мощен иновации в UNIX е черупката. Тя е по-ефективен от графичния интерфейс и ви позволява да създадете скриптове за автоматизиране на много задачи. Освен това, с помощта на газопровода инструкция може да бъде изградена импровизирана програма директно от командния ред. Транспортьорът събира командите във веригата, в която стандартния изход на един се превръща в стандартен вход команда за следващата команда.

Често използвани съкращения
  • GUI: графичен потребителски интерфейс (Graphical User Interface)

Но тръбопровода има един сериозен недостатък: тя е като черна кутия. Когато свържете двата отбора, единственият признак на процеса на изпълнение е на изхода, генериран от последната команда в последователността. Може да се вмъкнат в последователността на команда чай. както и да се наблюдава развитието на изходния файл с помощта на опашката. но тези решения работят добре само едно заявление в екип, в противен случай стандартния изход (стандартния изход) и стандартна грешка (STDERR) на различни фази се смесват. В допълнение, и двете от тези решения са груби показатели, които най-вероятно няма да се появи, но в действителност изчисления, необходими на всяка стъпка.

Разбира се, можете да се прекъсне една сложна поредица от команди за множество отделни стъпки, всяка от които ще генерират своя собствена изходен файл. В действителност, ако искате да проверите резултата на всеки интервал, разлагане е идеалното решение. Създаване на скрипт, който генерира отделен файл с данни и да го използвате като вход на всяка стъпка към следващата стъпка и т.н. В резултат се получава файл с крайните резултати. Въпреки това, тази практика е неподходяща за импровизаторски характер на командния ред.

Това, което трябва - показател за напредъка на задачата, която може да бъде поставена в командния ред за измерване на скоростта на предаване на данни. В идеалния случай би било добре да се използва този показател отново, за да се сравни ефективността на всяка стъпка. Ами, тъй като няма ограничение до съвършенство, добре е, че това е инструмент с отворен код, която работи с различни версии на UNIX, като Linux® и Mac OS X.

Всички наши желания изпълнени програма Pipe Viewer (PV), написана от системния администратор Андрю Ууд (Андрю Ууд) и се подобрява през последните четири години, много други разработчици. Тя ви позволява да погледнем вътре в "тръба" командния ред. Както е посочено в началната страница на проекта. PV "може да бъде поставена в тръбопровода между два процеса, за да се получи визуална индикация за това колко бързо се пренасят данни между тях, колко време е минало и колко близо до края на работата." Имайте предвид, че можете да използвате за измерване на относителната ефективност на фотоволтаичните няколко пъти в една и съща последователност от команди.

Тази статия описва как да се изгради фотоволтаична за тяхното UNIX-система и да я използват за прости и сложни комбинации от инструменти от командния ред. Нека да започнем с преглед на това как процесите комуникират един с друг чрез тези тръбопроводи.

Конвейерно UNIX: тръбни процеси

Фигура 1 показва стъпките за създаване на тръбопровод, свързващ два независими метода.

Фигура 1. Създаване на тръбопровод, свързващ двата процеса

В началото, във Фаза 1, процесът на инициатор чете данни от стандартния вход. извежда резултата на стандартния изход. и грешки в STDERR. стандартния вход. стандартния изход и STDERR са описания на файлове. Всяка операция се извършва с дескриптора на файла, например отворени. прочете. пиша. назад. съкрати или близки. променя състоянието на файла.

След това, във фаза 2, процесната конвейер създава инициатор. Транспортьорът се състои от сцената и две описания на файлове. Едно трябва да се постави на данни в режим на изчакване, а от друга - да ги извлече от опашката. Конвейерът е структура от данни FIFO тип (първо в - първи изход).

Сама по себе си, на конвейера е от голяма полза; тя има за цел да съчетае процес и процеса на доставчик-потребител (база данни). Поради това, в процеса на започване на фаза 3 вилици или създава процес, който ще се свърже.

Фази 1-4 илюстрират как обвивка се свързва с тръбопровод (|) две комунални услуги един на друг в командния ред. Трябва да отбележим само, че черупката се създава нов инструмент за всеки процес, а тя управлява напредъка на работата.

Например, Фигура 2 показва как да се свържете чрез конвейри намерят команда. Впиши и тоалетна. да се намери и да отчита броя на файловете, чиито имена започват с буквата А с малки букви. Черупката остава независим; заключение находка служи като вход поток към Впиши. в резултат на което, от своя страна, изпратено до тоалетната екип. тоалетна дръжки, получена от данните Впиши и извежда резултата на стандартния изход. Обикновено, черупката показва стандартния изход към терминала, но може да бъдат пренасочени към файл.

Фигура 2. Поставянето на екипа с помощта на транспортни ленти

Ако искате да проучи работата на две UNIX-процеси, създаване на два конвейра и замени описания на файлове процеси, така че те са взаимно данни и доставчик и клиент. Фигура 3 показва обмен на данни между процеси, където двата процеса са предефинирани потоци стандартния вход и стандартния изход.

Фигура 3. изследва две UNIX процес

Ние направихме кратък преглед на конвейерите, сега нека да погледнем по-отблизо с приложенията Pipe Viewer.

Pipe Viewer: забележителен конвейер

Pipe Viewer - е приложение с отворен код. Можете да изтеглите кода и изграждане на заявлението от нулата или да изтеглите изпълнимия файл от хранилището на вашия UNIX дистрибуция, ако се предлага.

Обява 1. определяне на тръби Viewer Кодът

За да изтеглите изпълним файл от архива на програмата PV, намери чрез мениджъра на пакети от вашите дистрибуции пакети според PV или тръба зрителя. Така например, в Ubuntu 9 търсене с помощта на мениджъра на пакети APT дава следния резултат:

Изтеглете и инсталирайте пакета с мениджъра си на пакети. В Ubuntu е ап-да инсталирате команда.

Сега нека се опитаме PV в действие. В най-простия пример, използвайте PV може да замени традиционната програма котка за предаване на битовете на друга програма и измерване на общата производителност. Например, тя може да се използва за проследяване на дълга експлоатация фотоволтаична компресия:

Когато започнете PV показва лента за хода, който показва и непрекъснато актуализира различните показатели за работата на изпълнение. Pv обикновено се остави отдясно се показва количеството на обработените данни, изминалото време, производителността в мегабайта в секунда, както и визуални и цифрово изражение на размера на извършената работа и оценка на оставащото време. В 96.1MB на 109MB пример по-горе, се обработва, а останалите 13% от файла изисква приблизително 9 секунди

PV подразбиране показва всички индикатори за състоянието, по който се оценява, че могат да бъдат изчислени. Например, ако на входа PV още няма файлове или ръчно да зададете точния размер, лента, която се движи от ляво на дясно за да се покаже активност на приложението, но PV не може да определи процента на извършената работа. Например:

Този пример катран команда на отдалечената машина. в резултат на което се изпраща до местната система projectx.tar файла. От PV не може да се изчисли общия брой байтове, които се предават, той показва изпълнението на изминалото време и специален индикатор, показващ дейността на заявлението. Той е малък индикатор ( <=> ), Който се движи от ляво на дясно, както за предаване на данни.

Параметър --wait отлага показване на лентата за хода, докато действителното получаване на първия байт. Тук --wait полезна, тъй като SSH команда може да бъде подсказано да въведете парола.

Можете да включите показатели по своему, като посочи знамената с имената на изказалите се:

В тази команда чрез --bytes флаг включен дисплей на броя байтове прехвърлени. Също така има опции --progress. --timer. --eta. --rate и --numeric. Ако зададете една или повече от тези опции, всички останали (неопределени) е определена за автоматично изключени.

Има и друг просто приложение на PV. --rate лимит опция може да се ограничи честотната лента. Този параметър се като аргументи редица и суфикс, което показва уреда. Например, m е броят на мегабайта в секунда:

Предишният команда деактивира всички индикатори (--quiet) и ограничава пропускателна способност от 1 МБ / сек.

По-сложен използване на тръби Viewer

Досега в нашите примери, да се използва само едно копие на Pipe Viewer, който е действал като доставчик или клиент на данни в един чифт отбори. Въпреки това, е възможно по-сложни комбинации. Като следвате някои от условията, можете да използвате няколко екземпляра на PV в един команден ред. А именно, трябва да използвате --name параметъра за да укажете името на всеки екземпляр на PV и активирате режима многоредово чрез --cursor параметър. Заедно тези два параметъра име създават поредица от показатели, един индикатор на образеца (програма).

Например, ние искаме да следите едновременно и отделно обработва данните и компресията. Задаваме едно копие на PV първата операция, а друга - на втория:

След като въведете паролата си, ние можем да видим, че Pipe Viewer показва двуредов индикатор на дейност:

В първия ред, маркиран с SSH показва напредъка на предаване на данни. Вторият ред етикетирани с софтуерна показва напредъка на компресиране на данните. Тъй като нито един от отборите не може да се определи размерът на данни в своите операции по всяка линия показва количеството прехвърлени данни и индикатор за активност.

Ако знаете или може да се оцени или изчисляване на обема на данни, обработвани от операцията, можете да използвате --size опция. С добавянето на тази опция, можете да получите повече информация по показателите за напредък.

Например, ако искаме да следят изпълнението на голяма резервна задача, можете да използвате и други комунални услуги UNIX, за да се изчисли общият размер на изходните файлове. DF полезност може да покаже статистиката за цялата файлова система, и дю може да изчисли размера на йерархията на произволна дълбочина файл:

Тук, последователността от команди дю -sh работи | нарязани -f1 дава общият размер на работната директория във формат, съвместим с PV. Du -Н генерира команда данни в четлив формат, като 17M 17 мегабайта, който е подходящ за използване с PV. (Ls и DF команди също подкрепят -h опция за извеждане на данни в лесен за четене формат). Тъй като сега PV очаква, че през тръбопровода ще бъде прехвърлена към определен брой байтове, се показва цялата лента на напредъка:

И накрая, има и друг метод, който със сигурност ще бъде от полза за вас. В допълнение към преброяване байта, Pipe Viewer може да се визуализира на напредъка на работата по преброяване линия за данни. Ако посочите модификатор --line режим. След това PV актуализира лентата за напредъка всеки път, когато се срещнат на нов ред. Можете също така да се използва параметъра --size. тогава броят се тълкува като очаквания брой линии.

Помислете за пример. Командата находка често е полезно, когато трябва да се намери игла в купа сено, например, за да намерите всички места, където голяма част от код, използвани от дадена система повикване. В такива случаи можете да използвате подобна команда:

Този код намира всички файлове на изходния код в C и връща името на файла, който отговаря fopen линия. Резултатът от работата е насочена към файл с име резултати. За да се отрази на дейността, за да добавите команда PV.

String Mode е феноменален, защото много UNIX команди като находка. оперира файлове за метаданни, но не и съдържанието им. String режим е идеален за администриране на системата скриптове, които копират или компресиране на голям брой файлове.

Като цяло, Pipe Viewer може да бъде вкаран в командния ред и скриптове, когато е възможно да се измери за пренос на данни. Понякога трябва да бъдете креативни - например, да се измери скоростта на копиране на директория, можете да превключите от CP-Pr да катран.

Също така, режим низ може да се използва при работа с електрически инструменти, като например Wget. къдри и ВКП. Например, може да се използва за показване на PV извършване на процеса на прехвърляне на известен обем от данни към отдалечена машина. И, тъй като много мрежови услуги могат да четат информация от даден файл, можете да използвате размера на файла като аргумент за създаването --size.

малко бижу

Pipe Viewer - това е една от онези малко известни скъпоценни камъни без които, след като се запознаят с тях един ден вече не е възможно да се направи. Може би ще намерите няколко начина за използване на PV в ежедневната работа в командния ред, но най-вероятно, ще откриете много възможности за използването му при сценарии за автоматизация. Вместо да се взира в мигащия курсор, чакай някой от сигнала, че всичко върви добре, можете да сложите сензора, за да получи информация за прилагането в реално време. Pipe Viewer ви позволява да чувате туптящото сърце на вашата машина.

Изтегляне ресурси

Свързани теми

  • Говорейки UNIX: Нека разгледаме тръби - оригиналната статия (EN).
  • Научете повече за UNIX черупки. (EN)
  • В Екс на developerWorks и секцията UNIX, винаги можете да намерите много справочни материали, отнасящи се до всички аспекти на AIX системи администрация. (EN)
  • Научете повече информация за Pipe Viewer и да го свалите. (EN)
Подкрепете проекта - споделете линка, благодаря!