ssh上的命令输出不同

时间:2017-01-04 10:39:56

标签: linux ssh

我想使用top在ssh上转储特定进程的cpu使用情况,我希望显示完整的命令行。 当我ssh到服务器并在本地执行命令时,我看到以下内容:

MediaDevices.enumerateDevices()

但是当我在ssh上执行相同的命令时,我看到以下内容:

remote-server$ top -c -b -n 1 |grep redis-server
 5137 redis-user   20   0 83.5g  23g  884 S 13.7 29.3  13388:28 ./bin/redis-server *:11000 

当我在ssh上运行命令时,我不明白为什么我没有得到完整的命令行(带有主机和端口参数*:11000)。

谁能告诉我我做错了什么?

我的本​​地桌面是OS X,El Capitan,而远程服务器是centos 6。

1 个答案:

答案 0 :(得分:0)

在ssh中使用-t选项重新运行命令。

local-desktop$ ssh -t news-cache1 "top -c -b -n 1 |grep redis-server"
当您远程运行命令时,

ssh客户端会分配一个宽度有限的tty终端。分配的终端宽度不足以显示您感兴趣的整行。添加-t会强制进行伪终端分配。来自http://man.openbsd.org/ssh

-t Force pseudo-terminal allocation. This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty.