VMware vSphere 6.7中,容许登陆 SSH登陆ESXi主机后,我试着运行了一下esxtop,没有看到相似Linux top类似的结果,却看到满屏幕的乱码。以下:linux
no termcap entry for a `xterm-256color' terminal"(PDH-CSV 4.0) (UTC)(0)", "\\172.localdomain\Memory\Memory Overcommit (1 Minute Avg)", "\\172.localdomain\Memory\Memory Overcommit (5 Minute Avg)", "\\172.localdomain\Memory\Memory Overcommit (15 Minute Avg)", "\\172.localdomain\Physical Cpu Load\Cpu Load (1 Minute Avg)", "\\172.localdomain\Physical Cpu Load\Cpu Load (5 Minute Avg)", "\\172.localdomain\Physical Cpu Load\Cpu Load (15 Minute Avg)", "\\172.localdomain\Physical Cpu(0)\% Processor Time", "\\172.localdomain\Physical Cpu(1)\% Processor Time", "\\172.localdomain\Physical Cpu(_Total)\% Processor Time", "\\172.localdomain\Physical Cpu(0)\% Util Time", "\\172.localdomain\Physical Cpu(1)\% Util Time", "\\172.localdomain\Physical Cpu(_Total)\% Util Time", "\\172.localdomain\Memory\Machine MBytes"," \\172.localdomain\Memory\Kernel MBytes", "\\172.localdomain\Memory\NonKernel MBytes", "\\172.localdomain\Memory\Free MBytes", "\\172.localdomain\Memory\Kernel Managed MBytes", "\\172.localdomain\Memory\Kernel MinFree MBytes", "\\172.localdomain\Memory\Kernel Reserved MBytes", "\\172.localdomain\Memory\Kernel Unreserved MBytes", "\\172.localdomain\Memory\Kernel State", "\\172.localdomain\Memory\PShare Shared MBytes", "\\172.localdomain\Memory\PShare Common MBytes", "\\172.localdomain\Memory\PShare Savings MBytes", "\\172.localdomain\Memory\Swap Used MBytes", "\\172.localdomain\Memory\Swap Target MBytes", "\\172.localdomain\Memory\Swap MBytes Read/sec", "\\172.localdomain\Memory\Swap MBytes Write/sec", "\\172.localdomain\Memory\Total Compressed MBytes", "\\172.localdomain\Memory\Total Saved By Compression MBytes", "\\172.localdomain\Memory\Memctl Current MBytes", "\\172.localdomain\Memory\Memctl Target MBytes", "\\172.localdomain\Memory\Memctl Max MBytes", "\\172.localdomain\Power\Power Usage Now Watts", "\\172.localdomain\Power\Power Usage Cap Watts", "\\172.localdomain\VSAN\Enabled?", "\\172.localdomain\Group Cpu(1:system)\Members", "\\172.localdomain\Group Cpu(1:system)\% Used", "\\172.localdomain\Group Cpu(1:system)\% Run", "\\172.localdomain\Group Cpu(1:system)\% System", "\\172.localdomain\Group Cpu(1:system)\% Wait", "\\172.localdomain\Group Cpu(1:system)\% Ready", "\\172.localdomain\Group Cpu(1:system)\% Idle", "\\172.localdomain\Group Cpu(1:system)\% Overlap", "\\172.localdomain\Group Cpu(1:system)\% CoStop", "\\172.localdomain\Group Cpu(1:system)\% Max Limited", "\\172.localdomain\Group Cpu(1:system)\% Swap Wait", "\\172.localdomain\Vcpu(1:system:2097153:idle1)\% Used", "\\172.localdomain\Vcpu(1:system:2097153:idle1)\% Run", "\\172.localdomain\Vcpu(1:system:2097153:idle1)\% System", "\\172.localdomain\Vcpu(1:system:2097153:idle1)\% Wait", "\\172.localdomain\Vcpu(1:system:2097153:idle1)\% VmWait", "\\172.localdomain\Vcpu(1:system:2097153:idle1)\% Ready", "\\172.localdomain\Vcpu(1:system:2097153:idle1)\% Idle",
原本vSphere还得依靠它来查看系统信息呢,esxtop却乱成一团,这可如何是好?去网上搜一搜,竟然也有人经历过相同的遭遇,VMware官网上有解决方法,以下:数据库
[root@172:~] echo $TERM xterm-256color
第1行中的no termcap entry for a `xterm-256color' terminal就是告诉咱们:对于xterm-256color这种控制终端,在本机的数据库里没有找到,因此就显示不出来正确的格式。既然不支持,就找一个能支持的终端吧。安全
[root@172:~] find /usr/share/terminfo/ -type f /usr/share/terminfo/v/vt102 /usr/share/terminfo/x/xterm /usr/share/terminfo/s/screen /usr/share/terminfo/l/linux /usr/share/terminfo/a/ansi
看吧,terminfo数据里能被ESXi主机支持的控制终端有5个,随便选一个来试试。bash
# TERM=XTERM esxtop
设为第2种xterm。立刻就行了!另外几种,也均可以。问题暂时解决了。要是下一次登陆,又不能显示,怎么办?dom
那就在/etc/bashrc里添加这个TERM变量。不行,没有这个文件。/etc/profile却是有,不过是只读的,root也没有权限修改。却是有个/etc/profile.local的权限是1644,root是用户,能够修改。打开来看,里面有一句说:测试
This file is not used when UEFI secure boot is enabled.
意思是说,要是使用UEFI安全启动,这个文件就废了。无论那么多了,修改一下,在里面添加这么两句:spa
TERM=xtermcode
export $TERMterminal
而后,再引用一下这个文件。get
# source /etc/profile.local
测试一下。先把TERM设为别的变量。
# TERM=test # source /etc/profile.local # echo $TERM
显示的是xterm。下次vSphere从新启动的时候,会读这个文件吗?我尚未试过。
参考资料:https://kb.vmware.com/s/article/2001448