Agora que o comando dd
está sendo executado, é tarde demais para redirecionar sua saída. Talvez você esteja longe do console e não possa usar screen
ou criar um FIFO para seu stderr ...
... mas você ainda pode usar duas sessões ssh e strace
!
Na primeira sessão ssh você pode escrever
sudo strace -ewrite -p 'pgrep ^dd' 2>&1 | grep -v "write(1,"
No segundo lugar ( leia a nota de aviso abaixo para o sinal usar -SIGUSR1
ou SIGINFO
)
kill -USR1 $(pgrep ^dd)
E leia um resultado não muito bom do primeiro similar ao abaixo
Process 26176 attached
--- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_USER, si_pid=29517, si_uid=0} ---
write(2, "329094980+0 records in\n329094979"..., 47) = 47
write(2, "168496629248 bytes (168 GB) copi"..., 34) = 34
write(2, ", 109.221 s, 1.5 GB/s\n", 22) = 22
Nota: Infelizmente (mesmo que reportado de forma diferente), o comando kill -USR1 $(pgrep ^dd)
forçará os processos dd
a serem gravados no stderr original . Para isso, foi necessário modificar a resposta original (você pode ver no histórico da versão).
Aviso: Conforme relatado em esta outra resposta o sinal para enviar com kill em vez de -USR1
pode depender da distro Linux. Em OpenBSD -SIGINFO
no Ubuntu SIGUSR1
. Verifique cuidadosamente com antecedência um erro pode terminar o processo!