Главная > Среда и утилиты > pv

pv: Мониторинг прогресса данных в конвейере

pv (Pipe Viewer) — это инструмент для мониторинга прогресса данных, передаваемых через конвейер. Он отображает в реальном времени объем данных, общее количество переданных данных, предполагаемое время завершения и т. д., помогая визуально отслеживать ход выполнения длительных задач.

Обзор

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

Основные функции

  • Отображение скорости обработки данных в реальном времени
  • Отображение общего объема переданных данных
  • Предоставление индикатора прогресса и предполагаемого времени завершения (ETA)
  • Функция ограничения скорости передачи данных

Основные опции

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

Отображение и управление

Сгенерированная команда:

Комбинируйте команды.

Описание:

`pv` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

Примеры использования

Различные примеры передачи и мониторинга данных с использованием команды pv.

Базовый мониторинг прогресса

dd if=/dev/urandom bs=1M count=100 | pv > /dev/null

Проверка прогресса с помощью pv при передаче данных, сгенерированных командой dd, в /dev/null.

Мониторинг прогресса копирования файла

pv large_file.iso > copied_file.iso

Отображение прогресса при копировании большого файла с помощью pv. (Замените на фактический путь к файлу)

Ограничение скорости передачи данных

dd if=/dev/zero bs=1M count=500 | pv -L 1m > /dev/null

Мониторинг прогресса с ограничением скорости передачи данных до 1 МБ в секунду.

Мониторинг прогресса сжатия

tar -czf - my_directory | pv -s $(du -sb my_directory | awk '{print $1}') > archive.tar.gz

Проверка прогресса с помощью pv при сжатии каталога с использованием tar и gzip. (Замените на фактический путь к каталогу)

Указание общего размера для точного ETA

dd if=/dev/urandom bs=1M count=500 | pv -s 500M > /dev/null

Указание pv общего размера данных в 500 МБ для получения более точного прогресса и предполагаемого времени завершения.

Установка

pv не входит в стандартную комплектацию большинства дистрибутивов Linux, поэтому его необходимо установить через менеджер пакетов.

Команды установки

Команды установки для каждой операционной системы.

  • Debian/Ubuntu: sudo apt update && sudo apt install pv
  • CentOS/RHEL/Fedora: sudo yum install pv или sudo dnf install pv
  • Arch Linux: sudo pacman -S pv
  • macOS (Homebrew): brew install pv

Советы и рекомендации

Советы и рекомендации по более эффективному использованию pv.

Советы по использованию

  • **Вставка в середину конвейера**: Вы можете вставить pv в середину конвейера в виде `command1 | pv | command2` для мониторинга прогресса на определенном этапе.
  • **Используйте -s для точного ETA**: Динамическое указание общего размера путем комбинации с командой `du`, например `pv -s $(du -sb large_dir | awk '{print $1}')`, позволяет получить более точный ETA.
  • **Управление пропускной способностью с помощью ограничения скорости**: При передаче по сети использование опции `-L` для регулировки пропускной способности может снизить влияние на другие службы.
  • **Прямой мониторинг файла**: Указание имени файла в качестве аргумента, например `pv file.ext`, позволяет отслеживать прогресс чтения этого файла.

Рекомендации

  • **Проблемы с буферизацией**: Некоторые команды выполняют собственную буферизацию, что может привести к отображению прогресса pv, отличающегося от ожидаемого. В этом случае необходимо проверить опции буферизации соответствующей команды.
  • **Вмешательство в вывод терминала**: Поскольку pv постоянно выводит прогресс на терминал, при использовании pv в скриптах может потребоваться подавить вывод с помощью опций, таких как `-q` (quiet).

Те же команды в категории