Поиск по сайту:

Pv — показать ход выполнения [копирования/резервного копирования/сжатия] данных в Linux


При создании резервных копий и копировании/перемещении больших файлов в вашей системе Linux вам может потребоваться отслеживать ход текущей операции. Многие инструменты терминала не имеют функций, позволяющих просматривать информацию о ходе выполнения команды в канале.

В этой статье мы рассмотрим важную команду Linux/Unix под названием pvPipe 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. И если при его использовании вы обнаружите какие-либо ошибки, вы также можете оставить комментарий.