Consultando o comando dd

Freqüentemente, você se pegará despejando arquivos de um lugar para outro ou despejando um disco ou partição inteira. Uma solução bastante simples – e portanto popular – é usar o ddcomando em sistemas operacionais baseados em Unix para essa tarefa.

No entanto, dependendo do tamanho do disco, seus parâmetros específicos para dd, a largura de banda máxima do barramento subjacente e também a natureza dos dados sendo despejados, este processo pode exigir um longo tempo – tudo sem ddfornecer qualquer feedback valioso sobre o estado atual das coisas.

Hoje eu aprendi que enviar ddum sinal do SIGINFO faz com que ele divulgue o que tem feito. Basta recuperar o id do processo usando ps -ae usar esse pid para enviar o sinal:

$ kill -USR1 <pid>

Exemplo:

$ dd bs=4096 if=/dev/urandom of=/dev/sdb
13656124+0 records in
13656123+0 records out
55935479808 bytes (56 GB) copied, 7984.45 s, 7.0 MB/s