С пятницей коллеги! Сегодня на повестке у нас еще одна полезная тулза.

PV «pipe viewer», держу пари многие даже и не подозревали что такое существует.

Что же она делает? Давай на пальцах, когда ты запускаешь из консоли дампиться базу или выполняешь копирование какого нибудь большого файла, ничего не остается кроме как красноглазить и ждать конца операции. На экране нет никакой полезной информации.

Ну дак вот, встроив в свой pipe эту утилиту у тебя появится информативный progress bar который в реальном времени будет показывать cкорость обработки данных.

[===>xxxxxxxx] 20%

Пошли тыкать:

pv /var/log/php/php-fpm.log | gzip > php-fpm.gz

33MiB 0:00:03 [ 114MiB/s] [==========>    ] 32% ETA 0:00:06
Роман Шубин
Роман Шубин
CEO & CTO, Главред в «Цифровой улей»
Задать вопрос
Наглядно видно, что через пайп за 3 секунды прошло 33Мб — это 32% от всего объема, операция займет еще 6 секунд. Заебись! Хорошо!

PV это вовсе не cat, её возможности намного шире, тут уже зависит на сколько ты будешь оригинален в своих скриптах и велосипедах.

Утилита укомплектована внушительной кучей различных ключей для запуска. Но я не привередливый и пользуюсь ей исключительно функционалом из коробки. Если есть время, кури --help или можешь глянуть на доисторической официальной страничке, а при желании и скомпилировать. 

Из клёвых ключей, есть:

-l строчный режим, pv может ограничивать скорость и просто в байтах
-L 100 – необходимое ограничение

Допустим у тебя есть база данных, которая не толерантна к большому объёму INSERT-ов и UPDATE-ов. Но у тебя также есть большой дамп с кучей таких операций.

Как безопасно импортировать дамп в базу и не убить её нахуй? А вот так:

# скорость ограничена 100 тысячами строк в секунду
pv -L 100k -l dump.sql | mysql -u root -p

# скорость ограничена 100 строками в секунду
pv -L 100 -l dump.sql | mysql -u root -p

Ну и на закусочку, баянище:

pv /dev/urandom > /dev/null
23MB 0:00:05 [ 12,9MB/s] [...<=>..........]

Не болей и береги себя. Всем хороших предстоящих выходных. Тут еще столько всего неизвестного и полезного ожидает тебя, мама не горюй

Увидимся в понедельник!*