Анонсирован (https://lkml.org/lkml/2011/2/17/412) выход новой версии программы ddpt (http://sg.danny.cz/sg/ddpt.html), представляющей собой расширенный вариант утилиты для копирования данных "dd" из пакета coreutils.
Из особенностей ddpt можно отметить:
- Режим рассеянной записи, при которой содержимое буфера не записывается, если оно состоит из нулей;
- Пропуск дубликатов - содержимое буфера не записывается, если оно повторяет содержимое источника;
- Поддержка продолжения копирования после прерывания процесса - копирование будет продолжено с позиции на которой работа утилиты была прервана;
- Поддержка обрезания пустых лидирующих и хвостовых блоков (trim);
- Возможность копирования источника сразу в два файла назначения (второй задается через опцию 'of2=');
- Поддержка прямого доступа к блочным устройствам через интерфейс SCSI pass-through, минуя файловую систему;
- Поддержка задания числовых аргументов в шестнадцатиричном виде;
- Возможность управления размером ...URL: https://lkml.org/lkml/2011/2/17/412
Новость: https://www.opennet.ru/opennews/art.shtml?num=29645
Где отображение прогресса копирования??? Так же по дурацки как и в оригинальном dd? Почему нельзя добавить простейшую строчку где будет показано сколько байт, блоков и т.п. скопировано, сколько процентов уже и сколько секунд осталось?
kill -INFO pid
Не надо понимать шутки буквально.kill -USR1 pid
> kill -USR1 pidА лучше в соседней консоли watch -n1 pkill -USR1 -x dd
Узнал две новые интересные команды. Спасибо!
Посмотрите ещё на dcfldd - она, среди прочего, умеет показывать статус копирования. Ну, заодно посмотрите ещё dc3dd, ddrescue.
> Где отображениеВо-первых, /bin/sh в руки.
В-третьих, pv. https://www.opennet.ru/tips/info/2253.shtml
Во-вторых, man dd^W^Winfo coreutils 'dd invocation' и kill -s INFO $pid тоже.
В-четвёртых, "ты за меня или за медведя?!".
В-пятых, да, как закончишь, простейшую строчку -- https://www.opennet.ru/announce_tips.shtml?c=f в студию!
не указывать of, пересылать stdout на pv -s $( тут код для нахождения размера ) не вариант?
А не потеряется ли при этом вообще смысл использовать dd?Ведь эта функция:
"Поддержка прямого доступа к блочным устройствам через интерфейс SCSI pass-through, минуя файловую систему;"
обеспечивает ускорение копирования, чего собственно шелл не умеет.
> Почему нельзя добавить простейшую строчку где будет показано сколько байт,
> блоков и т.п. скопировано, сколько процентов уже и сколько секунд осталось?я лично себе давно патч запилил и не парюсь.
> Режим рассеянной записи, при которой содержимое буфера не записывается, если
> оно состоит из нулей;То есть теперь обломается dd if=/dev/zero of=/dev/sda ?
>То есть теперь обломается dd if=/dev/zero of=/dev/sda ?Да нет, просто теперь из /dev/zero нули не будут постоянно читаться зря, давно бесило это в dd.
Интересно вот, даёт ли использование этого ddpt ощутимое ускорение по сравнению с dd?
>>То есть теперь обломается dd if=/dev/zero of=/dev/sda ?
> Да нет, просто теперь из /dev/zero нули не будут постоянно читаться зря,
> давно бесило это в dd.
> Интересно вот, даёт ли использование этого ddpt ощутимое ускорение по сравнению с
> dd?Ась?
man dd:
sparse If one or more output blocks would consist solely of
NUL bytes, try to seek the output file by the required
space instead of filling them with NULs, resulting in a
sparse file.Вот только нужно это именно опцией - еще не хватало, чтоб оно каждый раз sparse делало.
> и kill -s INFO $pid тоже.$ kill -s INFO 3493
bash: kill: INFO: invalid signal specification
что я делаю не так?
watch -n 10 kill -USR1 $pid
сигнал INFO есть в BSD, но его нет в Linux. Там эту функцию выполняет USR1
не нужно, есть ddrescue
раз не нужно, так и не берите, у вас есть ddrescue
только тогда и не суйтесь, у вас уже есть ddrescue
lol wat?