Pv — показать ход выполнения [копирования/резервного копирования/сжатия] данных в Linux
При создании резервных копий и копировании/перемещении больших файлов в вашей системе Linux вам может потребоваться отслеживать ход текущей операции. Многие инструменты терминала не имеют функций, позволяющих просматривать информацию о ходе выполнения команды в канале.
В этой статье мы рассмотрим важную команду Linux/Unix под названием pv – Pipe Viewer.
Pv — это инструмент на базе терминала, который позволяет отслеживать ход передачи данных по каналу. При использовании команды pv вы можете визуально отобразить следующую информацию:
- Прошедшее время.
- Процент выполнения включает индикатор выполнения.
- Показывает текущую пропускную способность.
- Общий объем переданных данных.
- и ETA (расчетное время).
Как установить команду pv в Linux?
Команда pv не установлена по умолчанию в большинстве дистрибутивов Linux, поэтому вы можете установить ее, выполнив следующие действия.
Установите pv в Linux на базе RHEL
Сначала вам нужно включить репозиторий EPEL, а затем запустить следующую команду yum или dnf, чтобы установить его.
yum install pv
OR
dnf install pv
Установите pv в Linux на базе Debian
sudo apt-get install pv
Установите pv в других дистрибутивах Linux
sudo emerge -a pv [On Gentoo Linux]
sudo apk add pv [On Alpine Linux]
sudo pacman -S pv [On Arch Linux]
sudo zypper install pv [On OpenSUSE]
Как использовать команду pv в Linux?
pv чаще всего используется с другими программами, у которых нет возможности отслеживать ход текущей операции. Вы можете использовать его, поместив в конвейер между двумя процессами с соответствующими доступными опциями.
Стандартный ввод pv будет передан на его стандартный вывод, а прогресс (выход) будет напечатан со стандартной ошибкой. По своему поведению она аналогична команде cat в Linux.
Синтаксис команды pv следующий:
pv file
pv options file
pv file > filename.out
pv options | command > filename.out
comand1 | pv | command2
Параметры, используемые с pv, разделены на три категории: переключатели отображения, модификаторы вывода и общие параметры.
Параметры модификаторов дисплея Pv
Некоторые параметры находятся под модификаторами отображения.
- Чтобы включить панель отображения, используйте опцию
-p
. - Чтобы просмотреть прошедшее время, используйте опцию
--timer
. - Чтобы включить таймер ETA, который пытается угадать, сколько времени пройдет до завершения операции, используйте опцию
--eta
. Предположение основано на предыдущих скоростях передачи и общем объеме данных. - Чтобы включить счетчик скорости, используйте опцию
--rate
. - Чтобы отобразить общий объем переданных на данный момент данных, используйте параметр
--bytes
. - Чтобы отображать информацию о ходе выполнения в целочисленном проценте вместо визуальной индикации, используйте опцию
-n
. Это может быть полезно при использовании pv с командой диалога для отображения прогресса в диалоговом окне.
Параметры модификаторов дисплея Pv
Некоторые параметры находятся в модификаторах вывода.
- Чтобы дождаться передачи первого байта перед отображением информации о ходе выполнения, используйте параметр
--wait
. - Чтобы предположить, что общий объем передаваемых данных составляет SIZE байт при вычислении процентов и расчетного времени прибытия, используйте опцию
--size SIZE
. - Чтобы указать секунды между обновлениями, используйте параметр
--interval SECONDS
. - Используйте опцию
--force
, чтобы принудительно выполнить операцию. Эта опция заставляет pv отображать визуальные эффекты, когда стандартная ошибка не является терминалом. - Общие параметры:
--help
для отображения информации об использовании и -version для отображения информации о версии.
Команда Pv с примерами в Linux
1. Если опция не указана, команды pv выполняются с использованием по умолчанию -p
, -t
, Опции >-e
, -r
и -b
.
Например, чтобы скопировать файл opensuse.vdi в /tmp/opensuse.vdi, запустите эту команду и посмотрите индикатор выполнения на скринкасте.
pv opensuse.vdi > /tmp/opensuse.vdi
2. Чтобы создать zip-файл из файла /var/log/syslog, выполните следующую команду.
pv /var/log/syslog | zip > syslog.zip
3. Чтобы подсчитать количество строк, слов и байтов в файле /etc/hosts, отображая только индикатор выполнения, выполните приведенную ниже команду.
pv -p /etc/hosts | wc
4. Отслеживайте ход создания файла резервной копии с помощью утилиты tar.
tar -czf - ./Downloads/ | (pv -p --timer --rate --bytes > backup.tgz)
5. В этом примере мы используем команду dd для записи ISO-файла на USB-накопитель:
dd if=debian-10.11.0-amd64-DVD-1.iso | pv | dd of=/dev/sda bs=4M
6. Совместное использование инструментов pv и dialog на основе терминала для создания индикатора выполнения диалогового окна следующим образом.
tar -czf - ./Documents/ | (pv -n > backup.tgz) 2>&1 | dialog --gauge "Progress" 10 70
Краткое содержание
Это хороший инструмент на основе терминала, который вы можете использовать с инструментами, у которых нет возможности отслеживать ход таких операций, как копирование/перемещение/резервное копирование файлов. Дополнительные параметры см. в разделе man pv. .
Я надеюсь, что эта статья окажется для вас полезной, и вы сможете оставить комментарий, если у вас есть какие-либо идеи по использованию команды pv. И если при его использовании вы обнаружите какие-либо ошибки, вы также можете оставить комментарий.