GXNAS博客

  • 博客会员
    • 注册会员
    • 重置密码
  • 博客文章分类
    • NAS
    • 虚拟化技术
    • 路由器
    • 网站
    • Linux
    • Windows
    • IPTV
    • 游戏
    • 资源下载
    • 其他
  • ”零刻迷你主机“玩机教程
    • 零刻EQ12迷你小主机评测
    • 零刻SER5 5500U打造新潮派HTPC
    • 零刻SEi10玩ESXI+群晖NAS+Ubuntu
    • 零刻EQ13化身迷你静音省电的NAS
    • 零刻EQ13部署双软路由教程
    • 零刻ME Mini搭建群晖NAS教程
  • 阿里云盘资源
    • 阿里云盘资源更新日志
    • 阿里云盘资源分享
    • 阿里云盘扩容福利码
  • 【GXNAS网盘】
  • 【GXNAS小工具】
    • 免费AI绘图
    • 五子棋小游戏
  • 请博主喝奶茶
GXNAS博客
https://wp.gxnas.com
  1. 首页
  2. 虚拟化技术
  3. 博文内容

ESXI虚拟机连接UPS实现断电自动关机的脚本

发布时间:2021年4月26日 18793次浏览 2人点赞 0条评论

虚拟机添加usb设备,选择ups的usb,并在虚拟机中安装配套的ups软件,设置断电自动关机,比如10分钟。
如果主板支持通电开机,ups虚拟机还需要设置自动启动,时间和顺序自行掌控。
所有虚拟机尽量安装vmtools,调用系统的关机,而不是关闭电源。
系统-自动启动,配置安装了vmtools的虚拟机,停止操作设置为关机,等待信号检测:是。


先简单了解一下几条命令:

1、获取ESXI上的所有虚拟机VMID的值

vim-cmd vmsvc/getallvms

 

2、把虚拟机正常关机

vim-cmd vmsvc/power.shutdown vmid的值

 

3、把虚拟机强制关闭电源

vim-cmd vmsvc/power.off vmid的值

 

 


开始干活:

#进入ESXI的存储盘

cd /vmfs/volumes/datastore1

 

#建立ups文件夹

mkdir ups

 

#进入ups文件夹

cd ups

 

#编辑ups.sh文件

vi ups.sh

 

#以下为 ups.sh 的内容,请酌情修改。
#其中:10.10.10.1 为主路由的IP,sleep 为稍等时间(秒),vmid的值请根据自己的实际情况修改。
#示例:每分钟ping主路由的IP,如果ping不通的话(停电就断网了)5分钟后会再次检测。再次检测如依然不通,则ESXI依次关闭虚拟机后,宿主关机。
#!/bin/sh
while
ping -c 1 10.10.10.1 > /dev/null
[ $? -eq 0 ];
do
    echo 'AC Power OK !' >> /vmfs/volumes/datastore1/ups/ups.log;date >> /vmfs/volumes/datastore1/ups/ups.log
    sleep 60
done
echo 'AC Power maybe off, checking again after 5 minutes !' >> /vmfs/volumes/datastore1/ups/ups.log;date >> /vmfs/volumes/datastore1/ups/ups.log
sleep 300
ping -c 1 10.10.10.1 > /dev/null
if [ $? -eq 0 ]
    then
        echo 'Checkagain, AC Power OK !' >> /vmfs/volumes/datastore1/ups/ups.log;date >> /vmfs/volumes/datastore1/ups/ups.log
    else
        echo 'AC Power is already off, shut down Esxi Now!' >> /vmfs/volumes/datastore1/ups/ups.log;date >> /vmfs/volumes/datastore1/ups/ups.log
        vim-cmd vmsvc/power.shutdown 11
        sleep 60
        vim-cmd vmsvc/power.shutdown 10
        sleep 60
        vim-cmd vmsvc/power.shutdown 6
        sleep 60
        vim-cmd vmsvc/power.shutdown 3
        sleep 60
        vim-cmd vmsvc/power.off 2
        sleep 60
        poweroff
fi
#ups.sh 的内容结束
 #编辑monitor.sh,守护ups.sh这个脚本正常运行 vi monitor.sh # monitor.sh 的内容开始
NUM=`ps -c | grep ups.sh | grep -v grep |wc -l`
echo ${NUM}
if [ "${NUM}" -lt "1" ];then
     /vmfs/volumes/datastore1/ups/ups.sh &
     echo 'monitor start' >> /vmfs/volumes/datastore1/ups/ups.log;date >> /vmfs/volumes/datastore1/ups/ups.log
fi
exit 0
#monitor.sh 的内容结束 #调整两个脚本的权限 chmod 755 monitor.sh
chmod 755 ups.sh  #esxi重启后引导会自动恢复初始状态 需要添加一个每次启动自动写引导 vi /etc/rc.local.d/local.sh  #在exit之前添加以下cron代码,3分钟执行一次守护进程 /bin/kill $(cat /var/run/crond.pid)
/bin/echo '*/3 * * * * /vmfs/volumes/datastore1/ups/monitor.sh' >> /var/spool/cron/crontabs/root
/usr/lib/vmware/busybox/bin/busybox crond  #需要执行一次/sbin/auto-backup.sh命令,我们上面编辑的脚本才真正的保存 /sbin/auto-backup.sh

 


【补充说明】

ESXi 8 为了安全性考虑,不允许第三方程序运行,需要设置手动禁止(如果不禁止,就会提示:-sh: ./ipmitool: Operation not permitted),允许ESXi 8 执行第三方程序。

esxcli system settings advanced set -o /User/execInstalledOnly -i 0

 

标签: esxi UPS 自动关机
最后更新:2024年3月24日

本文作者:博主

个人简介:(未填写)

打赏 点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论
站内搜索
分类
  • IPTV / 15篇
  • Linux / 34篇
  • NAS / 252篇
  • Windows / 21篇
  • 其他 / 37篇
  • 游戏 / 3篇
  • 网站 / 126篇
  • 虚拟化技术 / 55篇
  • 资源下载 / 2篇
  • 路由器 / 46篇
归档
统计信息
  • 5
  • 181
  • 2,819
  • 571
  • 16,839
  • 2025年7月25日

© 2025 GXNAS博客 版权所有,未经许可不得转载或引用本站的内容。

COPYRIGHT ALL RIGHTS RESERVED.

网站备案号:桂ICP备18008717号