我有一系列的生产服务器,我希望能够运行某些实用程序,而不必SSH进入机器。
不幸的是,其中一些程序(到目前为止我已经尝试过的top和iotop)需要设置curses和/或TERM环境variables,并且通过SSH从shell执行不起作用:
$ 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
有小费吗? 这可能吗?
你说你想运行它们没有SSH,但你通过SSH连接。 这使得很less感觉:)
我假设你想在ssh上运行实用程序而不用启动一个shell。 这是可能的,只要让ssh为你分配一个PTY即使它不启动一个shell:
ssh -t myserver top
对于“顶”,你可以使用“批处理模式” – 许多工具也有这样的:
ssh myhost top -bn1