Как я могу узнать, сколько времени займет клонирование `dd`? [дубликат]

На этот вопрос уже есть ответ:

Мне нужно dd пару жестких дисков емкостью 1 ТБ. На их клонирование уходит несколько часов, и мне было интересно, есть ли возможность узнать, насколько быстро они продвигаются, сколько они сделали и сколько времени им потребуется, чтобы скопировать остальное.

Я вижу только терминал с запущенной командой. Когда я запускаю ps -e , по крайней мере, я знаю, что dd работает, исходя из показанного использования ЦП, но у меня нет возможности узнать, сколько он сделал и сколько времени это займет. заканчивать.

Это меня сводит с ума.

24
задан 1 January 2013 в 13:53

4 ответа

Используйте программу pv для любого переданного по потоку потока, чтобы увидеть живой отчет о переданных данных. Может использоваться для любого применения с использованием труб. Это также отличный инструмент для определения скорости передачи на такие вещи, как USB, внешние диски, сетевые компьютеры.

dd if=infile | pv > outfile

Или для прямого копирования, просто используйте это:

pv infile > outfile

Пример:

sudo pv /dev/sda1 > /home/user/sda1.ext4.img
0
ответ дан 1 January 2013 в 13:53

Типичный. Когда я что-то спрашиваю, я как-то нахожу ответ (даже если я искал часы ... но волшебным образом я нахожу его ПОСЛЕ создания вопроса -.-). Во всяком случае для того, что я проверил с 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 и выполнив поиск dd или просто ps -e|grep dd и посмотрев на номер спереди. Запишите этот номер, а затем введите в другом окне терминала kill -USR1 4112; sleep 1;. Это даст мне время, прошедшие секунды с момента его начала и количество копий. По крайней мере, теперь я знаю, что копирование 1 ТБ информации занимает около 8 часов со скоростью около 40 МБ / с.

0
ответ дан 1 January 2013 в 13:53

Что касается использования kill для отображения информации на Mac, вы должны передать ему флаг -INFO вместо флага -USR1. И помните, что он отображает информацию в терминале, где запущен ваш процесс dd, поэтому, если вы откроете новую вкладку для типа kill -INFO $PID (где $PID - это число, которое вы нашли с помощью ps -e | grep dd), вам придется Вернитесь на вкладку, где работает dd, чтобы увидеть результат.

Теперь, если бы я только мог понять, как отобразить этот вывод в виде ГБ или МБ вместо простых байтов ...

0
ответ дан 1 January 2013 в 13:53

Уже есть другой расширенный дд, называемый dcfldd, который делает много забавных вещей, о которых вы просите http://dcfldd.sourceforge.net/

  1. [ 111]
  2. Вместо dd вы пишете dcfldd
0
ответ дан 1 January 2013 в 13:53

Другие вопросы по тегам:

Похожие вопросы: