O que fazer quando o pipe quebrado acontece em pssh, onde um arquivo de saída é esperado em cada host, e o processo ainda está em execução

0

Eu tenho um comando que se conecta a diferentes máquinas remotas e executa um script. Eu faço isso usando:

pssh -h pssh-hosts -l username -A -t 0 -i "bash -x commands.sh".

Existem muitos hosts no arquivo host. No host, um código de computação intensiva é executado e o arquivo o / p é gerado, isso pode levar 6 horas ou mais. Enquanto corro, fico:

./test
Write failed: Broken pipe

Faz sentido esperar que o processo termine ou o cano quebrado signifique que os arquivos de saída (em outros hosts remotos) não serão gravados?

    
por aven 02.09.2016 / 20:01

1 resposta

0

Provavelmente não há informações suficientes no momento para obter uma alavancagem real sobre isso.

O script produz um log de execução em cada máquina? Se não, provavelmente vale a pena modificá-lo para fazê-lo. (Assegure-se de que STDERR e STDIN entrem no log.)

Uma coisa que me ocorre a partir das mensagens - "./test" implica que algo está usando caminhos relativos: valeria a pena passar pelo script e alterá-lo para usar caminhos absolutos em todos os lugares. (Se as utilidades nas máquinas de destino estiverem em locais diferentes devido a diferentes distros, inclua um teste e construa o caminho absoluto dinamicamente).

    
por 03.09.2016 / 00:48

Tags