vim-cmd 是什么
vim-cmd 是 ESXi 主机内置的命令行接口,直接调用主机本地的管理接口,不用 vCenter 也能操作:vmsvc 系列负责虚机清单与电源操作,hostsvc 系列负责主机层面操作,其中进入维护模式在单机维护场景里很常用。它的执行范围限于本机,返回的虚机编号也是主机视角的编号,因此适合应急操作与主机本地维护;批量与集群级操作交给 vCenter 更稳妥。
基本信息
| 适用平台 | ESXi 主机 Shell(开启 SSH 或本地控制台) |
|---|---|
| 虚机清单 | vim-cmd vmsvc/getallvms |
| 电源操作 | vim-cmd vmsvc/power.on、power.off、power.getstate 加编号 |
| 维护模式 | vim-cmd hostsvc/maintenance_mode_enter |
| 退出维护 | vim-cmd hostsvc/maintenance_mode_exit |
| 权限要求 | 通常需要 root 权限执行 |
| 作用范围 | 仅当前主机,不适用于集群级批量操作 |
典型使用场景
- vCenter 不可用时的应急操作:直接登录主机启停虚机
- 主机维护:进入维护模式前确认本机还有哪些虚机在运行
- 快速核对:在主机侧确认虚机清单与电源状态,与 vCenter 对照
- 脚本化运维:在主机本地做定制化巡检与信息采集
- 排障:确认某台虚机是否真的运行在本主机,还是已被迁移走
- 维护后恢复:退出维护模式并确认虚机回到正常状态
常用命令序列
常用命令序列
vim-cmd vmsvc/getallvms # 列出本主机上的虚机与编号、路径
vim-cmd vmsvc/power.getstate 3 # 查看指定编号虚机的电源状态
vim-cmd vmsvc/power.on 3 # 开机(编号来自 getallvms 输出)
vim-cmd vmsvc/power.shutdown 3 # 请求 guest 优雅关机(依赖 VMware Tools)
vim-cmd hostsvc/maintenance_mode_enter # 进入维护模式,用于主机级维护
vim-cmd hostsvc/maintenance_mode_exit # 维护完成后退出
# 注意:维护模式生效前需确认本机虚机已迁移或关机,否则无法进入命令族与用途
| 命令族 | 用途 | 注意点 |
|---|---|---|
| vmsvc/getallvms | 列出本机虚机与编号 | 编号是主机视角,与 vCenter 显示的可能不同 |
| vmsvc/power.* | 开机、关机、重启、查状态 | 优雅关机依赖 VMware Tools 已安装并运行 |
| vmsvc/get.summary | 查看单台虚机的概要信息 | 用于核对配置与运行状态 |
| hostsvc/maintenance_mode_enter | 主机进入维护模式 | 有虚机运行时可能无法进入 |
| hostsvc/maintenance_mode_exit | 退出维护模式 | 退出后确认虚机电源状态已恢复 |
| hostsvc/hostsummary | 主机概要信息 | 排障时快速确认版本与状态 |
vim-cmd 面向单台主机:批量操作、集群级调度与权限审计交给 vCenter 或官方 API 更合适,也能避免在主机原地执行高风险动作。
在主机上直接强制关机相当于拔电:仅在无其他手段时使用,且要评估虚机内文件系统的完整性风险。