23 мая 2015 г.

Команда "dd" как швейцарский нож





ВНИМАНИЕ!
Эти примеры могут привести как сбою компьютера так и к потере данных, если ваши действия не будут выполняться с осторожностью



Как следить за ходом работы команды dd?


Вариант 1
Использование команды pv

Установить pv и поместить его между входом/выходом команды dd

Из описания пакета:

pv - Pipe Viewer - это инструмент терминала на основе мониторинга прогресса данных через трубопровод.
pv может быть вставлен в любой трубопровод между двумя процессами, чтобы дать визуальную индикацию о том, как долго длится процесс и как близко к завершению.

sudo dd if=/home/vlad/Desktop/images/ubuntu.img | pv | sudo dd of=/dev/sdb

Результат:

45,12MB 0:00:15 [ 450kB/s] [ <=> ]


Вариант 2
Использование команды kill

Также, вы можете следить за ходом dd, используя команду kill

Чтобы увидеть прогресс работы dd, откройте другой терминал и введите:

kill -USR1 $(pgrep ^dd)

Если бы вы хотели получать регулярные обновления о прогрессе dd, то введите:

watch -n5 'sudo kill -USR1 $(pgrep ^dd)'

watch будет исследовать процесс dd каждые -n секунд (-n5 = 5 секунд) и выводить отчет без остановки.
Обратите внимание на правильные одиночные кавычки в команде выше!!!




Команда создания файла подкачки

Введите следующую команду, чтобы создать файл подкачки на 2GB Ubuntu:

sudo dd if=/dev/zero of=/swapfile bs=1G count=2



Команда cat вместо dd

cat ubuntu.iso > /dev/usb



Быстрое создание больших файлов

Иногда нужно быстро что-то проверить (например, создать большой файл). Вы можете сделать это так:

sudo dd of=bigfile count=0 bs=1M seek=8000

Эта команда мгновенно создаст большой файл размером 8000MB. Хитрость заключается в том, что это (файл с отверстиями), на самом деле он не занимает пространство. Вы можете увидеть, что пишет команда stat для этого файла, он должен сказать, что 0 блоков выделено для него. При чтении этого файла можно увидеть нули, вы можете также писать в нем. Реальный размер так же будет расти, если мы будем добавлять туда информацию. Не каждая файловая система позволяет создание пустых файлов, вполне возможно, что после выполнения этой команды система на самом деле запишет эти 8000MB нулей в файл, но популярные Linux файловые системы будут работать, как ожидалось.



Тестирование производительности чтения / записи дисков

Я иногда использую dd чтобы увидеть, насколько быстро диск/файловая система пишет и читает данные
Эта команда создаст файл x.img размером 64Мб и покажет скорость и время записи

time dd if=/dev/zero of=~/Desktop/images/myimage.img bs=1M count=64 conv=fdatasync

Результат:

64+0 records in
64+0 records out
67108864 bytes (67 MB) copied, 1.02398 s, 65.5 MB/s

real 0m1.025s
user 0m0.000s
sys 0m0.079s

Обратите внимание на conv=fdatasyn опцию, которая приводит к синхронизации данных с носителем, поэтому сочетание с командой time вы получите фактическое время записи 64 МБ на диск



Комментариев нет :

Отправить комментарий

Оставить отзыв