Redirecionar a saída do aplicativo python remoto iniciado por ssh para arquivo

1

Eu tenho um aplicativo python em um servidor remoto que preciso depurar, quando executo o aplicativo localmente, ele imprime algumas informações de depuração (incluindo tracebacks python) que preciso monitorar.

Estou tentando redirecionar toda a saída do programa para um arquivo para que eu possa monitorar a saída remota usando tail -F , aqui Encontrei o seguinte comando para redirecionar as saídas:

ssh root@myserver 'nohup python /root/python/run_dev_server.py &>> /var/log/myapp.log &'

Isso me pega quase exatamente o que eu quero, informações de loggin e tracebacks python, mas eu não obtenho nenhuma informação exibida usando print do python, que eu preciso.

então eu também tentei este comando:

ssh root@myserver 'nohup python /root/python/run_dev_server.py 2>&1 >> /var/log/myapp.log &'

isso registra a saída do programa de print e também as informações de log, mas todos os tracebacks são enviados para o meu terminal local onde eu executei o script e meu script fica preso esperando por qualquer exceção acontecer no programa remoto.

Existe uma maneira de capturar todas as informações produzidas pelo aplicativo sem interromper meu script?

Agradecemos antecipadamente por qualquer sugestão.

    
por jeruki 06.11.2012 / 17:01

2 respostas

1

Você quase o teve ... No entanto, todos os três canais precisam ser redirecionados para o segundo plano de um processo via ssh. Std In, Std Out, Std Err. Assim:

nohup /root/python/run_dev_server.py &>/var/log/my.app.log </dev/null &

nota: & > é o equivalente de redirecionar o erro std out e std ao mesmo tempo. Em outras palavras, é a versão abreviada de '> > /var/log/myapp.log 2 > & 1 '

    
por 31.01.2013 / 19:39
0

Tente:

$ ssh  -t [email protected] "tail -f /var/log/messages" | tee -a mss.txt
    
por 22.05.2015 / 10:03