我想使用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。
答案 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.