我在用
ssh user@host top
为了显示top
“主机”的输出,我得到了
TERM environment variable not set.
解决办法是什么?
我怎样才能top
在“主机”上运行并查看输出?
答案1
top
显示它在终端设备上的输出,而不是在任何标准流(例如 STDOUT/STDERR)上。因为在执行以下操作时远程主机没有终端参与:
ssh user@host top
TERM
它给出有关未设置环境变量的错误。
您需要使用-t
以下选项在远程主机上分配一个伪 TTY ssh
:
ssh -t user@host 'top'
top
现在您也可以按通常的方式发送钥匙,例如q退出、h寻求帮助等。
此解决方案适用于所有需要 TTY 显示输出的程序。
为了完整起见,即使没有涉及本地 TTY,您也可以通过使用多个-t
s 来分配一个伪 TTY,例如:
ssh -tt user@host 'top'
答案2
如果您希望在本地主机上看到它,我建议您执行以下操作:
ssh user@server -t "top"
或者更好的是ssh user@server -t "top -n1"
,这样您就可以获得运行时资源情况的实例。
您甚至可以通过以下方式增强它以将其捕获到文件中:
ssh user@server -t "top -n1 -b" > topOutputFile