- linux-notes.org
- Утилита pv — прогресс bar для консольных утилит в Unix/Linux
- Установка pv в Debian/Ubuntu
- Установка pv в CentOS/Fedora/RedHat
- Установка pv в FreeBSD
- Установка pv в Mac OS X
- Установка pv в OpenSolaris
- Установка pv для других Unix/Linux
- Опции для утилиты pv
- Использование утилиты pv в Unix/Linux
- Добавить комментарий Отменить ответ
- How to Show Progress Bar for Linux Commands
- 1) PV Command
- Installing Pv
- Pv Usage with Examples
- Monitor the progress of creating an archive using gzip
- Monitor the progress when copying a file with pv
- Using pv and dialog commands to create a dialog progress bar
- 2) Progress
- Installing Progress
- Progress Usage with Examples
- Monitoring Downloads
- 3) Rsync
- Installing Rsync
- Rsync Usage with Examples
- 4) Advanced Copy
- Installing Advanced Copy
- Advanced Copy Usage with Examples
- linux-notes.org
- Установить прогресс bar для консольных утилит в Unix/Linux
- Примеры использования программы bar.
- Опции для утилиты bar
- Добавить комментарий Отменить ответ
linux-notes.org
Утилита pv — прогресс bar для консольных утилит в Unix/Linux
pv — это утилита которая имеет сокращение от pipeviewer и позволяет пользователю видеть прогресс выполнение той или иной команды по конвейеру и предоставляя информацию (прошедшее время, процент завершения (с индикатором выполнения), текущую пропускную способность, общий объем данных и ETA) — это просмоторщик пайпов.
Установка pv в Debian/Ubuntu
Установка pv утилиты, очень простая, выполняем:
Установка pv в CentOS/Fedora/RedHat
Для начала, подключаем репозиторий EPEL:
Установка pv утилиты, очень простая, выполняем:
Установка pv в FreeBSD
Установка pv утилиты, очень простая, выполняем:
Установка pv в Mac OS X
Устанавливаем homebrew: Установка homebrew на Mac OS X после чего, выполняем:
Установка pv в OpenSolaris
Если Вы пользователь OpenSolaris:
Установка pv для других Unix/Linux
Если не имеется пакета для установки, то переходим на официальную страницу pv, загружаем архив и выполняем ряд действий:
Опции для утилиты pv
pv принимает множество опций и сейчас я предоставлю их.
Коммутаторы (Display Switches)
Если не указаны опции для вывода, pv ведет себя так, как если бы вы задали «-p», «-t», «-e», «-r» и «-b» (т. е. все включено). В противном случае будут показаны только те типы вывода, которые явно включены:
- -p, —progress — Включает индикатор выполнения. Если стандартный ввод не является файлом и не задан размер (с модификатором «-s»), индикатор выполнения не может отобразить корректно данные, насколько близок к завершению передачи, поэтому он просто перемещается влево и вправо, чтобы показать что данные перемещаются.
- -t, —timer — Включить таймер. Это покажет общее время, в течение которого pv работает.
- -e, —eta — Включить таймер ETA. Утилита попытается угадать, как долго до завершения, исходя из предыдущих скоростей передачи и общего размера данных. Этот параметр не будет иметь эффекта, если общий размер данных не может быть определен.
- -r, —rate — Включите счетчик скорости. Это покажет текущую скорость передачи данных.
- -b, —bytes — Включите счетчик для общего отображения байт. На нем отобразится общий объем переданных данных.
- -n, —numeric — Цифровой выход. Вместо того, чтобы визуально показывать прогресс, pv даст целочисленный процент, по одной на строку, по стандартной ошибке, подходящий для пайпа (через свернутое перенаправление) в диалоговом окне (dialog). Обратите внимание, что опция «-f» не требуется, если используется «-n» опция.
- -q, —quiet — Запретить вывод. Полезно, если опция «-L» используется сама по себе, чтобы просто ограничить скорость передачи в пайпе.
Модификаторы вывода
- -W, —wait — Ждать, пока первый байт не будет перенесен, прежде чем показывать какую-либо информацию о ходе или вычислять любые ETA. Полезно, если программа к которой вы подключаетесь, требует дополнительной информации до ее запуска, например, для передачи данных в gpg или mcrypt, которые требуют кодовой фразы, прежде чем данные могут быть обработаны.
- -s SIZE, —size SIZE — Предположим, что общий объем передаваемых данных — это SIZE байт при вычислении процентов и ETA. Те же суффиксы «k», «m» и т. Д. Могут использоваться с «-L».
- -l, —line-mode — Вместо подсчета байтов, подсчитываеться строки (символы новой строки). Полоса выполнения будет двигаться только при обнаружении новой строки, а значение, переданное в параметр «-s», будет интерпретироваться для счета строки.
- -i SEC, —interval SEC — Ждать SEC секунд между обновлениями. Значение по умолчанию — обновлять каждую секунду. Обратите внимание, что это может быть десятичное число, такое как 0,1.
- -w WIDTH, —width WIDTH — Предположим, что терминал имеет ширину WIDTH, вместо того, чтобы пытаться его угадать (или назначить 80, если это невозможно предугадать).
- -H HEIGHT, —height HEIGHT — Предположим, что терминал имеет HEIGHT высоту, вместо того, чтобы пытаться его угадать (или назначить 25, если это невозможно предугадать).
- -N NAME, —name NAME — Префикс выводимой информации с помощью NAME. Полезно в сочетании с «-c», если у вас сложный пайп и вы хотите, чтобы он мог разделить вывод на разные части.
- -f, —force — Пренудительный вывод. Обычно pv не выводит никакого визуального вывода, если стандартная ошибка не является терминалом. Этот параметр заставляет это показать.
- -c, —cursor — Используйте escape последовательности позиционирования курсора вместо использования возврата каретки. Это полезно в сочетании с «-N (name)», если вы используете несколько pv запросов и соединяете его в один длинный конвейер.
Модификаторы передачи данных
- -L RATE, —rate-limit RATE — Ограничьте передачу до максимального RATE байта в секунду. Суффикс «k», «m», «g», или «t» могут быть добавлены для обозначения килобайт (*1024), мегабайт и т. д.
- -B BYTES, —buffer-size BYTES — Использовать размер буфера передачи BYTES байтов. Суффикс «k», «m», «g», или «t»могут быть добавлены для обозначения килобайт (*1024), мегабайт и т. д. Размер буфера по умолчанию — это размер блока файловой системы входного файла, умноженный на 32 (максимальный 512kb) или 400 кбайт, если размер блока не может быть определен.
- -R PID, —remote PID — Если PID является экземпляром pv, который уже запущен, -R PID заставит этот экземпляр действовать так, как если бы ему была назначена командная строка этого экземпляра. Например, если запустить «pv -L 123k» и он имеет 9876 ID процесс, тогда запуск «pv -R 9876 -L 321k» заставит его начать использовать ограничение скорости 321k вместо 123k. Обратите внимание, что во время работы некоторые параметры не могут быть изменены, например «-c», «-l» и «-f».
Общие опции
- -h, —help — Выводит показать справку об использовании данной утилиты и завершает работу.
- -V, —version — Выводит версию ПО и завершает работу.
ФОРМАТИРОВАНИЕ
Если задана опция «-F», формат вывода можно определить строкой формата. Внутри этой строки могут использоваться следующие последовательности:
- %p — Индикатор выполнения. Развертывается, чтобы заполнить оставшееся пространство. Следует указывать только один раз. Эквивалентно «-р» опиции.
- %t — Пройденное время. Эквивалентно «-t» опции.
- %e — Оставшееся время (ETA). Эквивалентно «-e»опции.
- %I — Время завершения (ETA). Эквивалентно «-I»опции.
- %r — Текущая скорость передачи данных. Эквивалентно «-r» опции.
- %a — Средняя скорость передачи данных. Эквивалентно «-a» опции.
- %b — Байты, передаваемые до сих пор (или строки, если указано «-l» опция). Эквивалентно «-b» опции.
- %T — Процент используемого буфера передачи. Эквивалентно «-T» опции. Показывает «<—->» если передача выполняется с помощью splice, поскольку сплайсинг в/из пайп(а) не использует буфер.
- %nA — Показать последние n записанных байтов, (например, %16A — последние 16 байт). Показывает только точки, если передача выполняется с помощью splice, поскольку сплайсинг в/из пайп(а) не использует буфер.
- %N — Префикс имени, присвоенный «-N» опцией.
- %% — Один %. Стандартная строка, эквивалентная включению всех переключателей вывода (display switches), `%N %b %T %t %r %a %p %e’.
Использование утилиты pv в Unix/Linux
Например, можно использовать утилиту pv вместо cat, следующим образом:
Собственно, все наглядно выглядит. Не правда ли?
Давайте упакуем некоторую папку в архив:
Наглядно, но не знаешь когда операция завершиться, по этому, давайте добавим ключ «-s» чтобы вывести ETA, например:
Так же, можно составлять команды из несколько копий pv:
Можно выводить прогресс-бар в виде цифр (в столбик), например:
Такс, например, вам нужно ограничить скорость изменять скорость передачи данных через pv утилиту. Например, я использовал -L для ограничения скорости передачи данных до 4МБ/с:
Как я уже описывал разные опции, но опишу опции еще раз:
- -c — Данная опция не выводит информацию друг поверх друга.
- -N — Называем шкалу определенным именем.
Можно поигратся и выполнить:
Чтобы узнать как быстро компьютер читает с /dev/zero, выполните:
Обнуление диска, можно выполнить следющим образом:
Чтобы проверить тест пропускной способности сети ssh, выполните:
И так, команда что выше, подключается к хосту через ssh и отображает скорость передачи в реальном времени, направляя все переданные данные в /dev/null.
Пример использования pv и dd утилиты:
Чтобы поиграться, выполните:
Используя инструмент pv и dialog, вы можете создать панель выполнения следующим образом:
Работа pv + mysql в Unix/Linux
Создать mysqldump можно так:
Влить созданный mysqldump можно так:
Более нагляднее, будет:
Чтобы сделать его еще приятнее, вы можете добавить progres NAME, например:
Вот и все, статья «Утилита pv — прогресс bar для консольных утилит в Unix/Linux» завершена.
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Источник
How to Show Progress Bar for Linux Commands
Many Linux commands like dd, cp, rsync, and mv are progressive but have no progress bars showing as they run. There is no built-in way to check the progress of ongoing operations except few commands that recently had commits ( dd command has status=progress from GNU coreutils version 8.24).
In this article, we’ll look at certain Linux tools and options which allow you to monitor the progress of data being transferred.
1) PV Command
Pv is a command-line based tool that allows you to monitor the progress of data being transferred using pipe. The pv command gives you a visual view of the following information.
- Time elapsed
- Percentage completed using a progress bar.
- Current throughput rate.
- Total data transferred.
- ETA (Estimated Time).
Installing Pv
You can install pv on your distro using the following commands
Fedora, CentOS and RHEL
Debian, Ubuntu and Linux Mint
Gentoo Linux
FreeBSD Linux
Pv Usage with Examples
The general syntax for pv is pv [Options] [File]
The -p option turns the progress bar on, -t option activates the total elapsed time pv has been running for, the -e option provides the ETA to completion based on the transfer rate and data size, the -r option shows the current rate of the transfer and finally the -b option shows the total amount of data transferred so far.
Monitor the progress of creating an archive using gzip
In this example, we use pv with gzip in the following example:
In this example, we provide the options and the file in question and then pipe it to gzip with a redirection to the file we want to archive.
Monitor the progress when copying a file with pv
Using pv without any options will automatically run with the default p , t , e , r and b options.
Using pv and dialog commands to create a dialog progress bar
2) Progress
Progress, formerly known as cv, is a tool that displays the percentage of copied data from coreutils basic commands like p, mv, dd, tar, gzip/gunzip, cat, etc. It can also provide additional information such as ETA and throughout.
Installing Progress
You can install progress on any distro with these steps.
Progress Usage with Examples
The general syntax for progress is watch progress -q . This lets you monitor all current and upcoming transfers in a terminal window. Now, any coreutils utility you invoke like cp and mv will be detected and indicated in the progress window.
Monitoring Downloads
The -c option can be used to monitor a command name like google-chrome or firefox
3) Rsync
Rsync is used to sync files locally and remotely. Rsync can be used to copy files and also has the ability to show the progress without the use on an external application.
Installing Rsync
Fedora, CentOS and RHEL
Debian, Ubuntu and Linux Mint
Rsync Usage with Examples
You need to use rsync with the -P or —progress option to show progress during file transfer. The basic syntax for rsync is
To copy a zip file from the desktop to newfolder, enter:
To copy files from a /example/*.tar to a remote server called dummy@linoxide.com, enter:
4) Advanced Copy
Advanced Copy, or advcpmv, is a mod for the cp and mv utilities which adds a progress bar and provides some information on ongoing transferred.
Installing Advanced Copy
You can install progress on any distro with these steps.
You might get this error, while running “./configure” command.
Run the following command to fix that error and rerun the ./configure command again:
Replace the original cp and mv commands with these two new commands
Advanced Copy Usage with Examples
The cp and mv commands stay same, the only change is adding the -g or -progress-bar option to the cp command. The -R option is used to copy directories recursively. Here is an example of the command:
We’ve seen a couple of tools and how they can be used to monitor progress on commands. The pv command is easy to set up and can monitor any command line activity. The progress utility is limited to only coreutils commands. Rsync has the inbuilt ability to monitor file transfers and advanced copy is a patch applied to only the cp and mv commands to show progress. Based on your trial, you can decide which of these is best for you.
Источник
linux-notes.org
Когда начал писать скрипты на bash и пользоваться консольными утилитами, мне потребовалось следить за выполнением задач, а именно, сколько же времени потребуется на ту или иную задачу. Не во всех утилитах есть прогресс бар. И в своей теме «Прогресс bar для консольных утилит в Unix/Linux» я расскажу про утилиту bar и как ее установить и использовать.
Bar — это небольшой скрипт который предназначен для использования для показа прогресс баров в консольных утилитах, а так же bash скриптов.
Установить прогресс bar для консольных утилит в Unix/Linux
Чтобы скачать ее, используйте:
И скопируем утилиту в нужное место для дальнейшего использования:
Примеры использования программы bar.
Приведу несколько наглядных примеров работы данной утилиты.
—Склеивание файлов.
—Копирование файлов.
или с помощью bar:
—Скопировать несколько файлов в другой каталог (и показать прогресс бар).
или с помощью bar:
—Распаковать каждый файл по отдельности, но показать общий процесс бар.
—Создать список файлов.
Опции для утилиты bar
PS: Есть лучшее решение, но об этом в следующей статье.
На этом, у меня все, я завершаю свою тему»Прогресс bar для консольных утилит в Unix/Linux».
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Источник