A maioria das implementações de dd
imprime informações de status ao receber SIGUSR1
. pkill -USR1 -x dd
é provavelmente o que você quer.
Estou usando dd
para clonar um disco em um arquivo de imagem e compactá-lo imediatamente:
dd if=/dev/sda | gzip > /mnt/image_file
Como posso verificar quantos dados dd
já processaram?
Observar o tamanho do arquivo de saída é obviamente inútil, devido a ele ser compactado.
Teste pv
, o visualizador de canais. Acabei de testar e funciona em /dev/sda
diretamente, o que significa que você tem uma barra de progresso determinista.
Em relação aos tempos:
Eu criei um arquivo aleatório com dd if=/dev/urandom of=random bs=4k count=10000
. Eu então tentei vários métodos para lê-lo:
$ time dd if=random | gzip >rand.gz
800000+0 records in
800000+0 records out
409600000 bytes (410 MB) copied, 17.9261 s, 22.8 MB/s
real 0m17.940s
user 0m16.545s
sys 0m1.248s
$ time pv random | gzip >rand.gz
391MB 0:00:17 [22.1MB/s] [==================================>] 100%
real 0m18.048s
user 0m16.477s
sys 0m1.048s
$ time <random gzip >rand.gz
real 0m18.410s
user 0m16.401s
sys 0m0.596s
Eu corri novamente, pv
e dd
estavam ainda mais próximos e abaixo de <
. Concluo que o desempenho de pv
e dd
é o mesmo dentro de uma pequena margem de erro.
Tags dd