找回密码
 加入我们
搜索
      
查看: 2388|回复: 13

[软件] 利用PuTTY终端SSH连接上ESXi系统后为什么无法通过命令行关机?

[复制链接]
发表于 2024-5-29 20:51 | 显示全部楼层 |阅读模式
比如用PuTTY终端以SSH协议root管理员账户连接到一台ESXi主机后,执行 esxcli system shutdown poweroff -r withintheplan 命令,返回的结果却是 System is not in maintenance mode. Cannot perform requested operation. 系统未处于维护模式。无法执行请求的操作。详见下图:
难道ESXi的正常模式下无法通过CLI命令行方式执行关机操作吗?

捕获esxcli system shutdown poweroff -r withintheplan.JPG
发表于 2024-5-29 20:55 | 显示全部楼层
esxcli --server=<server_name> system maintenanceMode set --enable true
呢?
发表于 2024-5-29 21:04 | 显示全部楼层
原来关机的命令这么长啊,我一直以为poweroff就可以了
 楼主| 发表于 2024-5-29 22:20 | 显示全部楼层

不管用,提示没有--server这个参数

捕获system maintenanceMode.JPG

另外再补充一下,我的ESXi版本是HPE-ESXi-6.7.0-Update3-19195723-iso-Gen9plus-670.U3.10.9.0.8 (Hewlett Packard Enterprise)
发表于 2024-5-29 22:27 | 显示全部楼层
先设置为维护模式,然后才能关机.
发表于 2024-5-30 08:07 来自手机 | 显示全部楼层
先进入维护模式再执行关机
发表于 2024-5-30 08:57 | 显示全部楼层
红色狂想 发表于 2024-5-29 22:20
不管用,提示没有--server这个参数

摊手.jpg image.jpg
 楼主| 发表于 2024-5-30 12:51 | 显示全部楼层

昨晚经过一番尝试终于搞明白了,原来ESXi命令行下关机等操作是有路数的,不像GUI环境下所见即所得,想怎么来就怎么来

CLI下执行关机的命令
esxcli system shutdown poweroff -r withintheplan

注:执行关机的前提条件是ESXi系统必须处于 maintenanceMode 维护模式

CLI下执行进入维护模式的命令
esxcli system maintenanceMode set --enable true
或者 vim-cmd /hostsvc/maintenance_mode_enter

注:执行进入维护模式的前提条件是,必须先关闭ESXi主机上正在运行着的所有VM虚拟机,如果当前有任何虚拟机正在运行中,执行进入维护模式命令会返回Another task is already in progress. 提示此任务已加入延迟队列,待所有虚拟机都关闭后才能得到响应。
但是此操作虚拟机不会被自动关闭,后来我手动关闭了虚拟机,ESXi系统就立刻进入了维护模式。

CLI下执行退出维护模式的命令
esxcli system maintenanceMode set --enable false
或者 vim-cmd /hostsvc/maintenance_mode_exit


CLI下执行查看验证当前ESXi主机维护模式状态的命令
esxcli system maintenanceMode get
或者 vim-cmd /hostsvc/hostsummary | grep inMaintenanceMode
 楼主| 发表于 2024-5-30 13:32 | 显示全部楼层
wxlg1117 发表于 2024-5-29 22:27
先设置为维护模式,然后才能关机.

置为维护模式也有先决条件,必须先关闭所有虚拟机。。。不知道ESXi系统GUI环境下关机重启功能是怎么实现的,无需进入维护模式,也无需手动关闭所有虚拟机,系统会自动处理然后安全地关机,难道后台调用的那个/bin/shutdown.sh关机脚本,他会自动批处理一堆内部操作?
 楼主| 发表于 2025-4-30 20:48 | 显示全部楼层
港城钢铁侠 发表于 2024-5-30 08:07
先进入维护模式再执行关机

汇报一下结论,去年终于弄明白了,只要在ESXi Web环境下对所有虚拟机配置好自动启动和自动关机功能,SSH远程登录ESXi系统,执行/bin/shutdown.sh命令后等一会儿,ESXi主机就自动关机了。于是就顺利实现了在一个外部客户端上运行一个守护脚本,当侦测到停电事件发生时,通过调用PuTTY终端软件自带的plink.exe程序向远程主机建立SSH连接发送shutdown命令,就可以让网络中的所有ESXi、Linux、Windows主机自动关机。

捕获ESXi虚拟机自动启动.JPG
发表于 2025-4-30 22:39 | 显示全部楼层
本帖最后由 wxlg1117 于 2025-4-30 22:41 编辑
红色狂想 发表于 2025-4-30 20:48
汇报一下结论,去年终于弄明白了,只要在ESXi Web环境下对所有虚拟机配置好自动启动和自动关机功能,SSH ...


还搞啥守护脚本啊,既然有外部客户端,现成的直接上nut-server啊,esxi有nut-client的vib安装包

我就是搞了个ups接树莓派,跑的linux上转nut-server,esxi安装nut-client的vib包,然后配置下nut server的ip之类的即可.

PS:esxi里的各虚拟机记得要安装vm-tools或open vm tools,否则自动关机是关机脚本等候到超时直接断电源的方式执行自动关机步骤.
发表于 2025-4-30 22:57 | 显示全部楼层
毕竟是生产系统,怕用户不按流程来搞出事情。。
 楼主| 发表于 2025-4-30 23:21 | 显示全部楼层
wxlg1117 发表于 2025-4-30 22:39
还搞啥守护脚本啊,既然有外部客户端,现成的直接上nut-server啊,esxi有nut-client的vib安装包

我就是搞了 ...

我没有支持通讯功能的UPS,就普通的山特TG1000后备式,怎么让nut-server捕获停电信号呀,要是能解决这个问题我还搞那么复杂干嘛
 楼主| 发表于 2025-4-30 23:25 | 显示全部楼层
无真名 发表于 2025-4-30 22:57
毕竟是生产系统,怕用户不按流程来搞出事情。。

这个只适合自己在家里玩儿,生产力环境还想这些干啥,直接上企业级UPS网络管理卡
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-5-1 16:25 , Processed in 0.010911 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表