Executando programas interativos remotos remotamente por SSH

1

Eu tenho uma série de servidores de produção que gostaria de executar certos utilitários sem ter que usar o SSH na máquina.

Infelizmente, alguns desses programas (top e iotop que eu tentei até agora) requerem que curses e / ou uma variável de ambiente TERM seja configurada, e executar a partir do shell via SSH não funciona:

$ ssh myserver top
TERM environment variable not set.
$ ssh myserver iotop
Traceback (most recent call last):
  File "/usr/sbin/iotop", line 16, in <module>
    main()
  File "/usr/lib/python2.7/dist-packages/iotop/ui.py", line 571, in main
    main_loop()
  File "/usr/lib/python2.7/dist-packages/iotop/ui.py", line 561, in <lambda>
    main_loop = lambda: run_iotop(options)
  File "/usr/lib/python2.7/dist-packages/iotop/ui.py", line 465, in run_iotop
    return curses.wrapper(run_iotop_window, options)
  File "/usr/lib/python2.7/curses/wrapper.py", line 22, in wrapper
    stdscr = curses.initscr()
  File "/usr/lib/python2.7/curses/__init__.py", line 33, in initscr
    fd=_sys.__stdout__.fileno())
_curses.error: setupterm: could not find terminal

Alguma dica? Isso é possível?

    
por spitzanator 10.05.2013 / 16:36

2 respostas

6

Você diz que quer executá-los sem o ssh, mas conecta-se ao ssh. Isso faz muito pouco sentido:)

Suponho que você queira executar utilitários sobre o ssh sem iniciar um shell. Isso é possível, apenas faça o ssh alocar um PTY para você mesmo que ele não inicie um shell:

ssh -t myserver top
    
por 10.05.2013 / 16:39
1

Para "top" você pode usar o "modo batch" - muitas ferramentas também têm isso:

ssh myhost top -bn1
    
por 10.05.2013 / 16:39