Loading... 虚拟机添加usb设备,选择ups的usb,并在虚拟机中安装配套的ups软件,设置断电自动关机,比如10分钟。 如果主板支持通电开机,ups虚拟机还需要设置自动启动,时间和顺序自行掌控。 所有虚拟机尽量安装vmtools,调用系统的关机,而不是关闭电源。 系统-自动启动,配置安装了vmtools的虚拟机,停止操作设置为关机,等待信号检测:是。 ```shell #列出所有虚拟机 vim-cmd vmsvc/getallvms #以下为参考 ups.sh 酌情修改 #正常关机 vim-cmd vmsvc/power.shutdown vmid #关闭电源 vim-cmd vmsvc/power.off vmid ``` ```shell cd vmfs/volumes/datastore1 mkdir sh vi ups.sh ``` ups.sh 10.10.10.13改为自己的虚拟机IP,sleep 改为合适的数值。 示例:断电10分钟后虚拟机关机,第一次ping虚拟机IP检测失败,5分钟后再次检测,如果再次检测失败,esxi关机。 ```shell #!/bin/sh while ping -c 1 10.10.10.13 > /dev/null [ $? -eq 0 ]; do echo 'AC Power OK !' >> /vmfs/volumes/datastore1/sh/ups.log;date >> /vmfs/volumes/datastore1/sh/ups.log sleep 60 done echo 'AC Power maybe off, checking again after 5 minutes !' >> /vmfs/volumes/datastore1/sh/ups.log;date >> /vmfs/volumes/datastore1/sh/ups.log sleep 300 ping -c 1 10.10.10.13 > /dev/null if [ $? -eq 0 ] then echo 'Checkagain, AC Power OK !' >> /vmfs/volumes/datastore1/sh/ups.log;date >> /vmfs/volumes/datastore1/sh/ups.log else echo 'AC Power is already off, shut down Esxi Now!' >> /vmfs/volumes/datastore1/sh/ups.log;date >> /vmfs/volumes/datastore1/sh/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 ``` ```shell vi monitor.sh ``` monitor.sh 守护ups.sh运行 ```shell vi monitor.sh ``` ```shell NUM=`ps -c | grep ups.sh | grep -v grep |wc -l` echo ${NUM} # if [ "${NUM}" -lt "1" ];then /vmfs/volumes/datastore1/sh/ups.sh & echo 'monitor start' >> /vmfs/volumes/datastore1/sh/ups.log;date >> /vmfs/volumes/datastore1/sh/ups.log fi exit 0 ``` ```shell #sh权限 chmod 777 monitor.sh chmod 777 ups.sh ``` ```shell #esxi重启后引导会自动恢复初始状态 需要添加一个每次启动自动写引导 vi /etc/rc.local.d/local.sh #在exit之前添加以下cron代码 3分钟执行一次 /bin/kill $(cat /var/run/crond.pid) /bin/echo '*/3 * * * * /vmfs/volumes/datastore1/sh/monitor.sh' >> /var/spool/cron/crontabs/root /usr/lib/vmware/busybox/bin/busybox crond #保存 /sbin/auto-backup.sh ``` 最后重新引导esxi即可,日志文件保存在/datastore1/ups.log。 最后修改:2021 年 01 月 06 日 04 : 48 PM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 ×Close 赞赏作者 扫一扫支付 支付宝支付 微信支付