Прогресс — показать ход выполнения команд Linux (cp, mv, dd, tar)
Progress, ранее известный как Coreutils Viewer, — это легкая команда C, которая выполняет поиск основных команд coreutils, таких как cp. , mv, tar, dd, gzip/gunzip, cat, grep и т. д., которые в данный момент выполняются в системе, и показывает процент копируемых данных работает только в операционных системах Linux и Mac OS X.
Кроме того, он также отображает важные аспекты, такие как расчетное время и пропускная способность и предлагает пользователям режим «как сверху».
Он полностью сканирует файловую систему /proc на наличие интересных команд, а затем ищет в каталогах fd
и fdinfo
, чтобы найти открытые файлы, ищет позиции и сообщает о состоянии обширных файлов. Важно отметить, что это очень легкий инструмент, совместимый практически с любой командой.
Как установить средство просмотра прогресса в Linux
Для работы Progress требуется библиотека ncurses, поэтому установите libncurses, прежде чем приступить к ее установке, выполнив соответствующую команду ниже:
sudo apt install libncurses5-dev [On Debian, Ubuntu and Mint]
sudo yum install ncurses-devel [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a ncurses-devel [On Gentoo Linux]
sudo apk add ncurses-dev [On Alpine Linux]
sudo pacman -S ncurses-devel [On Arch Linux]
sudo zypper install ncurses-devel [On OpenSUSE]
В дистрибутивах на основе RPM, таких как (Red Hat, CentOS, Fedora, SUSE, Rocky, AlmaLinux и т. д.), запустите один из них:
sudo dnf install progress
sudo yum install progress
В системах на основе deb (Debian, Ubuntu, Mint и т. д.) запустите:
sudo apt install progress
В Arch Linux запустите:
sudo pacman -S progress
В других дистрибутивах Linux вы можете начать с клонирования или загрузки файлов пакета из репозитория Github следующим образом:
git clone https://github.com/Xfennec/progress.git
Затем перейдите в каталог прогресса и создайте его, как показано:
cd progress
make
sudo make install
После успешной установки просто запустите этот инструмент со своего терминала. Ниже мы рассмотрим несколько примеров использования Progress в системе Linux.
Мониторинг хода выполнения команд в Linux
Вы можете просмотреть все команды coreutils, с которыми работает Progress, запустив его без каких-либо параметров, при условии, что в системе не выполняется ни одна из команд coreutils:
progress
Чтобы отобразить расчетную пропускную способность ввода-вывода и расчетное оставшееся время для выполняемых команд coreutils, включите опцию -w
:
progress -w
Показать прогресс копирования файлов
Чтобы просмотреть ход выполнения команды cp при копировании больших файлов, выполните:
cp GhostBSD.vdi /home/tecmint/Downloads/ & progress -mp $!
Показать ход перемещения файлов
Чтобы просмотреть ход выполнения команды mv при перемещении больших файлов, выполните:
mv GhostBSD.vdi /media/tecmint/Personal_Data/ & progress -mp $!
Показать прогресс файлов Tar
Чтобы просмотреть ход выполнения команды tar при создании tar-архива, выполните:
tar czf images.tar.gz linuxmint-18-cinnamon-64bit.iso CentOS-7.0-1406-x86_64-DVD.iso CubLinux-1.0RC-amd64.iso | progress -m $!
Показать ход выполнения нескольких команд
В следующем примере вы можете открыть два или более окон терминала, затем запустить команды coreutils в каждом из них и наблюдать за их ходом, используя другое окно терминала, как показано на изображении ниже.
Команда ниже позволит вам отслеживать все текущие и предстоящие экземпляры команд coreutils:
watch progress -q
Чтобы найти более интересные варианты, просмотрите справочные страницы progress или посетите https://github.com/Xfennec/progress:
man progress
Заключение
В заключение отметим, что это очень полезный инструмент для мониторинга хода выполнения команд coreutils, особенно при копировании, архивировании и сжатии тяжелых файлов, а также многого другого.
Если вы успешно установили его, используйте его и поделитесь с нами своим опытом в разделе комментариев ниже. Вы также можете предоставить нам несколько отличных примеров использования, которые вы найдете полезными для важных повседневных задач системного администрирования и многого другого.