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

Средство просмотра прогресса команд Coreutils

Отслеживайте и отображайте ход выполнения команд Coreutils в Linux.

Поскольку мир все чаще использует программное обеспечение с открытым исходным кодом, Linux стал фаворитом среди многих технических энтузиастов. Его гибкость, безопасность и широкие возможности настройки сделали его популярным как для разработчиков, так и для системных администраторов. Одна из многих сильных сторон Linux заключается в его надежном интерфейсе командной строки (CLI), который можно дополнить различными утилитами. Сегодня мы углубимся в мир одной такой утилиты, которая расширяет возможности интерфейса командной строки — Progress, ранее известная как cv (Coreutils Viewer).

Что такое прогресс?

Прогресс — это небольшой, но мощный инструмент, предназначенный для мониторинга и отображения хода выполнения основных команд coreutils (cp, mv, dd, tar, gzip, gunzip, cat и т. д.), которые в данный момент работают в вашей системе.

Прогресс отображает процент скопированных данных и может даже оценивать время и пропускную способность. Для пользователей, которым нужен постоянный мониторинг, он также предоставляет режим «top-like».

Инструмент Progress — это бесплатное приложение с открытым исходным кодом, разработанное с использованием языка программирования C. Он разработан для совместимости с несколькими платформами, включая Linux, FreeBSD и macOS.

Как работает прогресс?

Progress работает путем сканирования /proc на наличие интересных команд. Затем он проверяет каталоги fd и fdinfo, чтобы найти открытые файлы и найти позиции, впоследствии сообщая о состоянии самых больших файл. В macOS те же операции выполняются с использованием libproc.

Несмотря на свои обширные возможности, Progress очень легок и совместим практически с любой командой.

Установка прогресса

Процесс установки Progress прост и зависит от типа используемой системы.

Для систем на базе Debian (Debian, Ubuntu, Mint и т. д.) откройте терминал и запустите:

sudo apt install progress

Если вы используете Arch Linux, EndeavourOS и Manjaro Linux, откройте терминал и выполните:

sudo pacman -S progress

Пользователи Fedora могут установить прогресс, открыв терминал и набрав:

sudo dnf install progress

Для openSUSE откройте терминал и введите:

sudo zypper install progress

В macOS с Homebrew откройте терминал и запустите:

brew install progress

Если вы предпочитаете MacPorts в macOS, откройте терминал и введите:

sudo port install progress

Сборка из исходного кода

Для тех, кто предпочитает сборку из исходного кода, процесс прост.

Убедитесь, что в вашей системе установлены необходимые инструменты сборки и библиотеки. Перейдите по следующей ссылке, чтобы установить инструменты разработки.

Как установить инструменты разработки в Linux

Далее загрузите исходный код для прогресса:

git clone https://github.com/Xfennec/progress.git

Перейдите в каталог, в котором клонирован исходный код.

cd progress

Запустите следующую команду, чтобы скомпилировать и установить прогресс:

make && sudo make install

Если вы используете FreeBSD, используйте «gmake» вместо «make».

Если вы обнаружите какие-либо ошибки, связанные с отсутствием библиотеки ncurses при сборке из исходного кода, вам необходимо установить Ncurses в вашей системе Linux.

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

Для систем на базе Debian используйте:

sudo apt install libncurses5-dev

Для Arch Linux используйте:

sudo pacman -S ncurses

Для Fedora используйте:

sudo dnf install ncurses-devel

Использование силы прогресса

Progress можно использовать множеством способов для мониторинга вашей системы. Позвольте мне показать вам несколько примеров.

1. Мониторинг команд Coreutils

Чтобы отслеживать все текущие и предстоящие экземпляры команд coreutils в простом окне, введите следующую команду:

watch progress -q

2. Мониторинг хода загрузки

Чтобы отслеживать ход загрузки при использовании Firefox, выполните следующую команду:

watch progress -wc firefox

3. Мониторинг активности веб-сервера

Чтобы следить за активностью вашего веб-сервера, введите следующую команду:

progress -c httpd

4. Мониторинг тяжелых команд

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

cp bigfile newfile & progress -mp $!

Давайте разберем приведенную выше команду и посмотрим, что делает каждая опция.

  1. cp bigfile newfile &: эта команда копирует файл с именем bigfile в новый файл с именем newfile. Амперсанд & в конце запускает команду в фоновом режиме, позволяя пользователю продолжать использовать оболочку, не дожидаясь завершения команды.
  2. progress -mp $!: эта команда использует утилиту progress для отслеживания хода самого последнего фонового процесса. Вот что делают флаги:

    • -m включает режим мониторинга, который обновляет статистику хода выполнения в реальном времени до завершения отслеживаемого процесса.
    • -p сообщает progress отслеживать конкретный идентификатор процесса (PID).
    • $! — это специальная переменная оболочки, содержащая PID последнего запущенного фонового процесса.

Итак, подведем итог: вся команда копирует файл в фоновом режиме и одновременно отслеживает ход этой операции копирования с помощью утилиты progress.

Возможности Progress обширны и могут быть адаптированы в соответствии с вашими потребностями.

Связанное чтение:

  • Расширенное копирование: добавление индикатора выполнения к командам cp и mv в Linux
  • Как отслеживать движение данных по каналу с помощью команды «pv»

Заключение

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

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

Как и в случае с любым другим инструментом, лучший способ по-настоящему оценить его возможности — это использовать его. Итак, попробуйте Progress и откройте для себя новый уровень эффективности командной строки.

Ресурс:

  • Репозиторий Progress на GitHub

Статьи по данной тематике