“top” 未通过“ssh”显示输出

“top” 未通过“ssh”显示输出

我在用

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,您也可以通过使用多个-ts 来分配一个伪 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

相关内容