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 dd
comando 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 dd
fornecer qualquer feedback valioso sobre o estado atual das coisas.
Hoje eu aprendi que enviar dd
um sinal do SIGINFO faz com que ele divulgue o que tem feito. Basta recuperar o id do processo usando ps -a
e 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