- Как посмотреть прогресс dd Linux
- Прогресс команды Linux с помощью progress
- Установка progress
- Смотрим прогресс команды с помощью progress
- Способ второй — создание туннеля
- Выводы
- Show dd Progress in Linux with these 2 Methods
- Show dd Progress with Status option
- Monitor Progress of dd with PV
- How to Use DD Show Progress Command in Linux?
- Check dd Version
- Option 1: Use the dd Command to Show Progress
- Option 2: Use dd Command with pv to Show Progress
Как посмотреть прогресс dd Linux
Если вы пользователь Linux то часто используете команды, которые выполняются некоторое время, например, команда копирования файлов cp, распаковка архивов с помощью tar, перемещение файлов в mv, конвертирование и копирование файлов с помощью dd. Прогресс выполнения команды нужен чтобы приблизительно оценить время до завершения выполнения задачи, или просто чтобы убедиться что все работает и утилита не зависла.
Однако команда dd, как известно, при копировании файла не отображает прогресс бар для пользователя, поэтому непонятно сколько процентов файлов уже скопировано.
В этой статье мы рассмотрим как посмотреть прогресс dd в linux, этот метод подходит не только для dd, но и для всех подобных ей утилит.
Но есть очень простое решение, и даже два. Первое, это утилита Coreutils Viewer или progress (раньше известная как cv). Программа написана на С и ищет выполняемые в данный момент в системе программы такие как: mv, cp, dd, tar, unzip и т д и отображает процент скопированных данных. Второе, более интересное. Мы можем направить данные через туннель pv, который будет считать с какой скоростью они передаются и сколько еще осталось. Рассмотрим сначала первый способ.
Прогресс команды Linux с помощью progress
Установка progress
Эта утилита не поставляется с системой по умолчанию. Но установить ее очень просто, программа есть в официальных репозиториях большинства дистрибутивов. Например, в Ubuntu:
sudo apt install progress
В других дистрибутивах она может быть более старой версии и назваться cv. Также вы можете собрать программу из исходников. Единственная зависимость — библиотека ncurces. В Ubuntu 16.04 ее можно установить такой командой:
sudo apt-get install libncurses-dev
sudo apt-get install ncurses-dev
sudo yum install ncurses-devel
Когда удовлетворите зависимости утилиты, выполните следующую команду для загрузки исходников с GitHub:
Затем распакуйте полученный архив:
Измените текущий каталог с помощью cd:
Запустите сборку и установку:
Программа готова к работе.
Смотрим прогресс команды с помощью progress
После завершения установки запустите progress следующей командой:
В результате получится что-то вроде:
Теперь давайте запустим копирование видео из папки на рабочий стол и посмотрим что произойдет:
Команда progress покажет прогресс копирования cp:
Выполним progress еще раз:
Как видите, утилита показывает информацию о прогрессе копирования файла, процент скопированных данных, количество скопированных данных и общий размер файла. Это очень полезно при копировании больших файлов, например, при копировании фильмов или образов дисков. То же самое будет если запустить dd, mv, tar, zip или другую подобную утилиту.
В утилиты есть много полезных опций. Опция -w заставляет программу показывать время, оставшееся до окончания операции:
Если вы хотите видеть упрощенный вывод без дополнительных сообщений используйте опцию -q. И наоборот для показа всех предупреждений и ошибок воспользуйтесь -d. Например, лучше использовать cv со следующими опциями:
Вы можете отслеживать состояние процесса пока он запущен:
Если вы хотите постоянно наблюдать за прогрессом всех команд используйте опцию -М:
Очень популярный вот такой вариант:
Также можно посмотреть прогресс linux только нужной программы, например, прогресс загрузки файла в firefox:
watch progress -wc firefox
Или проверить активность web-сервера:
Способ второй — создание туннеля
То, что мы рассмотрели выше — не единственный способ посмотреть прогресс команды linux. Еще есть утилита pv. Она намного проще и выполняет только одну задачу — считает все данные проходящие через нее. Может читать поток из файла или стандартного ввода.
Поэтому ее можно использовать чтобы посмотреть прогресс выполнения команды в Linux. Например, создадим такой туннель для dd:
dd if=/dev/zero | pv | dd of=/file
Здесь мы выдаем содержимое нужного нам файла на стандартный вывод, передаем утилите pv, а затем она отдает его другой утилите, которая уже выполняет запись в файл. Для cp такое сделать не получиться, но мы можем поступить немного по-другому:
pv /ваш_файл | cat > новый_файл
Готово, здесь мы тоже получим прогресс команды копирования.
Выводы
Чтобы использовать всю мощь Linux пользователям часто приходится работать в командной строке. Чаще всего мы смотрим содержимое, копируем файлы, распаковываем архивы. В этой инструкции мы рассмотрели утилиту process, которую можно использовать для просмотра прогресса dd и других системных команд.
Мне всегда было интересно посмотреть прогресс копирования cp для больших файлов. Честно говоря, я часто имею дело с большими файлами при просмотре фильмов на своем ноутбуке.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Show dd Progress in Linux with these 2 Methods
The Linux dd command is a well-known tool to create live USB. One drawback of this tool is that it doesn’t show progress and thus you don’t know what’s going on while creating live USB. This tutorial explains how to show dd progress in 2 methods.
Show dd Progress with Status option
The dd command is part of the GNU core utilities, aka coreutils. A dd progress indicator has been built into this utility since coreutils version 8.24. To check the version of coreutils on your Linux OS, simply run this command:
Ubuntu 16.04, Debian 9 and Arch Linux-based distros has latest version 8.25. To let dd show progress you need to add status=progress option like below:
sudo dd if=/path/to/iso/file of=/dev/sdX bs=4M status=progress
You can see how much has been copied, how many seconds has passed and write speed.
The exact device name for your USB drive can be obtained from fdisk command.
Monitor Progress of dd with PV
For those who don’t have access to coreutils v8.24+, this method is for you. pv is a pipe viewer which can be used to monitor the progress of data flow in Linux pipeline. To install it, issue the following command:
To see dd progress, combine pv and dd command like below.
pv /path/to/isofile | sudo dd of=/dev/sdX
| is the symbol for pipe in Linux. In the above command, pv puts the iso file into the pipe and dd will get the iso file from the pipe then write the iso file to your USB device identified by /dev/sdX.
You can get status of how much has been copied, how many seconds has passed, write speed, a percentage progress indicator and estimated remaining time.
I personally prefer dd over Unetbootin because dd always worked for me whereas sometimes live USB created by Unetbootin won’t boot.
As always, if you found this post useful, subscribe to our free newsletter or follow us on Google+, Twitter or like our Facebook page.
How to Use DD Show Progress Command in Linux?
Home » SysAdmin » How to Use DD Show Progress Command in Linux?
The dd command-line utility is used to convert and copy files on Unix and Unix-like operating systems. By default, the dd command doesn’t show any output while transferring files.
This could be problematic when copying large files since you cannot monitor the process.
In this tutorial, you will learn how to use the dd command to show progress.
- A system running Linux
- A user account with sudo or root privileges
- Access to a terminal window / command line
- GNU Coreutils version 8.24 or above
Check dd Version
To see the progress bar while copying files and directories with the dd command, you need a version of dd (coreutils) no older than 8.24. Check the version with the command:
At the time of writing, the latest version of dd (coreutils) is 8.30 as seen in the image above.
Note: If you need to install coreutils, run: sudo apt-get install -y coreutils .
Option 1: Use the dd Command to Show Progress
The basic syntax for using the dd command is:
dd if=/path/to/input of=/path/to/output
However, the default settings do not show a progress bar or any output while the process is taking place.
To see the progress bar, add the status=progress attribute to the basic command:
dd if=/path/to/input of=/path/to/output status=progress
While the system is copying the specified file, it shows the amount of data that has been copied and the time elapsed.
Once the process is complete, the terminal displays the total amount of data transferred and the time duration of the process.
Option 2: Use dd Command with pv to Show Progress
The pv command allows a user to see the progress of data through a pipeline. You can use it with the dd command to show the progress of a specified task.
To do so, you need to install pv.
On Ubuntu/Debian systems run:
On CentOS/Redhat systems run:
To use pv with the dd command follow the syntax:
dd if=/path/to/input | pv | dd of=/path/to/output
After reading this article, you should know how to show progress while running the dd command, with or without the pv command.
Download a free copy of Linux Commands Cheat Sheet to help you with managing your instance of Linux.
Sofija Simic is an experienced Technical Writer. Alongside her educational background in teaching and writing, she has had a lifelong passion for information technology. She is committed to unscrambling confusing IT concepts and streamlining intricate software installations.
Setting file and directory permission properly is important in multi-user systems such as Linux. You can set.
If you want to keep your filesystems clean and without errors, you need to scan it on regular basis. In this.
Want to learn how to copy files in Linux OS? This guide will show you how to use the Linux commands to copy.
Tutorial on securely transferring files between Unix or Linux systems using the SCP command. The SCP or.