Pv — Небольшая, Но Очень Полезная Утилита

Один из моих друзей сказал о pv следующее: «Я работаю админом семь лет, этот инструмент мне понадобился десятки раз, и я даже не знал, что он существует».

Размышляя о том, как получить инвайт в Харб, я набрал в поиске pv. И я ничего не нашел.

Итак, pv — это сокращение от Pipeviewer, то есть не что иное, как просмотрщик каналов.

Об эффективности использования труб рассказывать не буду; это ни для кого не секрет. Единственное «но» в работе с ними — когда вы набираете команду и нажимаете Enter, вам часто не хватает самого малого — знать, сколько времени потребуется на ее выполнение.

Именно скорость обработки данных нам покажет pv. С текстами закончили, перейдем к примерам.

Установка pv в Debian довольно тривиальна.



% sudo aptitude install pv

Далее вводные, допустим, вы, как и я, являетесь счастливым обладателем каких-то полезных логов и в какой-то момент дошли руки их заархивировать, например вот так

% cat rt94-171-06 | gzip > rt94-171-06.gz

Есть идеи, сколько времени займет эта операция? То же самое и с пв

%pv rt94-171-06 | gzip > rt94-171-06.gz 128MB 0:00:15 [ 9.1MB/s] [=====>.

] 18% ETA 0:01:07

Хорошо видно, что за 15 секунд по трубе прошло 128 МБ — это 18% от общего объема; операция займет еще минуту и 7 секунд. Может показаться, что пв — это замена кота, но на самом деле его возможности гораздо шире.

Например, упаковываем весь каталог в сжатый архив.



%tar -czf - .

| pv > out.tgz 21.9MB 0:00:15 [1.47MB/s] [.

<=>.

]

Это уже хорошо, но хотелось бы большего, чтобы показывалось время окончания работы.

Для этого вам просто нужно использовать ключ -s, чтобы передать pv размер каталога в байтах.



%tar -czf - .

| pv -s $(du -sb | grep -o '[0-9]*') > out.tgz 44.3MB 0:00:27 [1.73MB/s] [>.

] 0% ETA 13:36:22

Вся операция займет у меня 13 с половиной часов.

Хех, я накопил =) Вы также можете составлять команды из нескольких копий pv.

%tar -cf - .

| pv -cN tar -s $(du -sb | grep -o '[0-9]*') | gzip | pv -cN gzip > out.tgz tar: 97.1MB 0:00:08 [12.3MB/s] [>.

] 0% ETA 1:50:26 gzip: 13.1MB 0:00:08 [1.6MB/s] [.

<=>.

]

Переключатель -c необходим для предотвращения отображения информации несколькими копиями pv друг над другом.

Переключатель -N дает шкале имя.

И напоследок забавный пример из одного англоязычного блога о Linux

%pv /dev/urandom > /dev/null 18MB 0:00:05 [ 3,6MB/s] [.

<=>.

]

Теги: #linux #настройка Linux #CLI #инструменты

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.