Как я могу узнать, сколько времени займет клонирование `dd`?
Мне пришлось dd
пара жестких дисков по 1 ТБ. Они занимают несколько часов, чтобы клонировать, и я задавался вопросом, был ли какой-нибудь способ узнать, как быстро они идут, сколько они сделали и сколько времени они будут копировать остальные.
Все, что я вижу, это терминал с запущенной командой. Когда я бегу ps -e
по крайней мере, я знаю, что dd
работает с показанным использованием процессора, но у меня нет никакого способа узнать, сколько он сделал или сколько времени потребуется, чтобы закончить.
Вид сводит меня с ума.
4 ответа
Используйте программу pv
для любого потокового канала, чтобы увидеть живой отчет о переданных данных. Может использоваться для любого применения с использованием труб. Это также отличный инструмент для определения скорости передачи на такие вещи, как USB, внешние диски, сетевые компьютеры.
dd if=infile | pv > outfile
Или для прямого копирования, просто используйте это:
pv infile > outfile
Пример:
sudo pv /dev/sda1 > /home/user/sda1.ext4.img
Типичный. Когда я что-то спрашиваю, я как-то нахожу ответ (даже если я искал часы... но волшебным образом я нахожу его ПОСЛЕ создания вопроса -.-). Во всяком случае для того, что я проверил с dd --help
который упоминает в конце справки (я не могу поверить, что я не видел ЭТО) следующее:
Sending a USR1 signal to a running `dd' process makes it
print I/O statistics to standard error and then resume copying.
$ dd if=/dev/zero of=/dev/null& pid=$!
$ kill -USR1 $pid; sleep 1; kill $pid
18335302+0 records in
18335302+0 records out
9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s
Это означает, что в другом терминале вы должны запустить следующую строку, используя ID процесса того DD, который вы хотите проверить. Например, в моем случае это Process Id 4112. Вы можете увидеть идентификатор процесса, набрав ps -e
и ищет дд или просто ps -e|grep dd
и глядя на номер спереди. Запишите этот номер, а затем введите другое окно терминала kill -USR1 4112; sleep 1;
Это даст мне время, секунды, прошедшие с момента его начала, и количество копий. По крайней мере, теперь я знаю, что копирование 1 ТБ информации занимает около 8 часов со скоростью около 40 МБ / с.
Что касается использования kill для отображения информации на Mac, вы должны передать ему -INFO
флаг вместо -USR1
флаг. И помните, что он показывает информацию в терминале, где запущен ваш процесс dd, поэтому, если вы откроете новую вкладку для ввода kill -INFO $PID
(где $PID
это число, которое вы нашли с помощью ps -e | grep dd
), вам придется переключиться обратно на вкладку, где dd
работает, чтобы увидеть вывод.
Теперь, если бы я только мог понять, как отобразить этот вывод в виде ГБ или МБ вместо простых байтов...
Уже есть другой расширенный дд dcfldd
которые делают много забавных вещей, как это вы просите http://dcfldd.sourceforge.net/
sudo apt-get install dcfldd
- Вместо
dd
ты пишешьdcfldd