Viendo el progreso en el uso del comando dd


Por una falla de disco causada por un altibajo de voltaje en un disco de 500 GB , se ha corrompido una instalación y me he obligado a rellenar con ceros el disco para ponerlo vacío usando un live cd , he usado dd de la siguiente forma:


# dd if=/dev/zero of=/dev/sda


Sin embargo el uso de 'dd' no es atractiva para un disco de dicha capacidad dado que no indica el progreso. Usando la señal especial USR1 , podemos ver el progreso.

Como requiero el PID del proceso, lo obtendría usando

ps -ef | grep dd


Supongamos que el PID obtenido sea 1337, el progreso lo veríamos así

kill -USR1 1337


Sin embargo, tendría que estar ejecutando en vez en cuando la linea para ver el progreso. Así que haciendo un script sería de la siguiente forma


#!/bin/bash

for ((;;)); do
sleep 15s
kill -USR1 1337
done

#Fin de script


Cada 15 segundos (pudiéndose colocar otros valores) mostraría algo así



(click en la imagen para verla más grande)

2 comentarios:

BEASTJQK dijo...

dd if=/lugar/de/origen |pv|dd of=/lugar/de/destino

Luis García dijo...

Una buena alternativa... aunque en las veces donde el dd requiere más parámetros , no se recomienda usar pv

Publicar un comentario