Monitorando remotamente o status do DD

0

Eu tenho um longo processo dd sendo executado em um sistema Debian a partir do console local.

Eu sei que posso enviar USER1 ou CTRL + T no console local, mas, por enquanto, meu único meio é monitorá-lo via ssh . O Google infelizmente não ajudou muito aqui.

Existe uma maneira simples de monitorar seu progresso remotamente sem interromper a tarefa atual?

    
por Unkwntech 26.02.2016 / 16:56

1 resposta

0

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!

    
por 26.02.2016 / 17:29