Como posso saber quanto tempo a clonagem 'dd' vai demorar? [duplicado]

23

Eu tenho que dd de alguns discos rígidos de 1 TB. Eles estão tomando várias horas para clonar e eu estava me perguntando se havia alguma maneira possível de saber o quão rápido eles estão indo, o quanto eles fizeram e quanto tempo eles vão levar para copiar o resto.

Tudo o que posso ver é o terminal com o comando em execução. Quando eu executo ps -e , pelo menos eu sei que dd está funcionando a partir do uso da CPU mostrado, mas não tenho como saber quanto ele fez ou quanto tempo levará para terminar.

Meio que me deixa louco.

    
por Luis Alvarado 06.03.2012 / 14:07

4 respostas

20

Use o programa pv para qualquer fluxo de canalização para ver um relatório ao vivo de dados transferidos. Pode ser usado para qualquer aplicativo usando pipes. É também uma ótima ferramenta para ver a taxa de transferência para coisas como USB, discos externos, computadores em rede.

dd if=infile | pv > outfile

Ou para cópia direta, use isso:

pv infile > outfile

Exemplo:

sudo pv /dev/sda1 > /home/user/sda1.ext4.img
    
por Sepero 15.07.2012 / 17:05
26

Típico. Quando peço algo, então encontro a resposta de alguma forma (mesmo que eu olhasse por horas ... mas, magicamente, eu a descobri depois de criar a pergunta). De qualquer forma para o que eu verifiquei com dd --help , que menciona no final da ajuda (eu não posso realmente acreditar que eu não vi isso) o seguinte:

Sending a USR1 signal to a running 'dd' process makes it
print I/O statistics to standard error and then resume copying.

   $ dd if=/dev/zero of=/dev/null& pid=$!
   $ kill -USR1 $pid; sleep 1; kill $pid
   18335302+0 records in
   18335302+0 records out
   9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s

O que isto significa é que em outro terminal você executaria a seguinte linha usando o ID do processo do DD que deseja verificar. Por exemplo, no meu caso é Process Id 4112. Você pode ver o ID do processo, digitando ps -e e procurando por dd ou apenas ps -e|grep dd e olhando para o número na frente. Tome nota desse número e, em seguida, digite outra janela de terminal kill -USR1 4112; sleep 1; Isso me dará o tempo, segundos decorridos desde o início e quanto é copiado. Pelo menos agora eu sei que leva cerca de 8 horas para copiar 1 TB de informação em cerca de 40MB / s.

    
por Luis Alvarado 06.03.2012 / 14:13
8

Em relação ao uso do kill para exibir informações em um Mac, você deve passar o -INFO flag em vez do -USR1 flag. E lembre-se que ele mostra as informações no terminal onde seu processo dd está sendo executado, então se você abrir uma nova guia para digitar kill -INFO $PID (onde $PID é o número que você encontrou usando ps -e | grep dd ), você terá que volte para a guia onde dd está sendo executado para ver a saída.

Agora, se eu pudesse descobrir como exibir essa saída como GB ou MB em vez de bytes simples ...

    
por bobo 27.09.2014 / 15:28
4

Já existe outro dd estendido chamado dcfldd que faz muitas coisas engraçadas, já que você está solicitando o link

  1. sudo apt-get install dcfldd
  2. Em vez de dd , você escreve dcfldd
por TheNano 12.03.2013 / 15:13