xtavras 14.06.2010 20:05
Tips & tricks — Прогресс статус в DD
Боян конечно, но может кому то пригодится. Команда "dd" всем хороша, но зачастую процесс может занимать очень продолжительное время, а опции прогресс бара у нее нет by design. Но это можно частично решить послав USR1 сигнал процессу "dd".Итак запускаем такой длительный процесс, например форматирование жесткого диска. Для удобства ставим в конце команды амперсанд, чтобы сразу получить PID процесса и возможность вводить команды с этой же консоли.
Пример:
1 |
|
Смотрим какой PID получил наш процесс dd, например 1566
Пример команды для нашего PID.
1 |
|
После чего видим что-то типа:
1 |
|
Это правда все время ручная работа, но можно сделать выдачу прогресса автоматом, например каждые 10 секунд, вот пример нашедший в сети.
1 |
dd if=/dev/zero of=/dev/sda bs=1M &
|
UPD: Еще один способ подсказал Cucumber
1 |
|

+ 0 -
забавно:) спасибо
Можно не смотреть PID. Просто
killall -USR1 dd
http://ru.wikipedia.org/wiki/Dd
killall -USR1 dd
http://ru.wikipedia.org/wiki/Dd
killall требует рутовых прав только для приложения, запущенного от рута.
Оффтоп, конечно, но не ругайтесь! А можно ли как-то в онлайне смотреть вывод ls -l? Что-нибудь типа ls -l | tail -f? :)
Велосипедик конечно юнихвейный, но есть более правильный на данный момент способ: использование ddrescure. То же самое, что и dd (чуть отличается синтаксис), но выводит при копировании прогресс, скорость чтения/записи и прочие прелести. В одних дистрах называется ddrescue, в других - dd_rescue.
$ ddrescue /dev/urandom testfile
Press Ctrl-C to interrupt
rescued: 31916 kB, errsize: 0 B, current rate: 5636 kB/s
ipos: 31916 kB, errors: 0, average rate: 5413 kB/s
opos: 31916 kB
^Cpying data...
Interrupted by user
dd просто сто лет в обед, отсюда и велосипеды, но это же и преимущество, ибо есть везде, как vi.
Ну, по сути так и есть, но я думаю, что если есть возможность юзать что-то более подходящее, то не стоит делать велосипед, а просто поставить нужную тулзу и все.
а ещё для этого можно использовать pv: http://habrahabr.ru/blogs/linux/65384/
А можно ли нечто подобное с wget провернуть? killall -USR1 не прокатило
Если несколько одновременно качают, то чтоб под руками не путались, а например к конькам прикрутить