关于ESXI 中虚拟机进行定时 开机如何实现VM ESXI

关于ESXI 中虚拟机进行定时 开机如何实现

近期在VM ESXI 8.0 中 部署 黑群晖, ikuai, istore 等虚拟机服务,在使用的过程中,考虑到功耗问题。及个人的使用情况。其实有些虚拟机是没必要长期在运行中的。所有针对我的黑群晖做了 定时开关机处理。

image

 

但是在次过程中又出现了奇葩的问题就是  每天关机 是可以实现的  ,在黑群晖中设定每天开机是无法实现的。上图是我删掉每天开机后的截图 ,看看就行。具体原因大致搞明白了,针对此问题 直接给出一下解决方案。

通过ESXI  来实现VM虚拟机的自动开机 。

BUT   ESXI WEB 端是没有此设定方式的

针对以上情况 只能通过 vSphere PowerCLI  来解决

步骤:

1、 启动shell 服务

image

 

2、通过 SSH链接  

工具我使用的是mobaxterm, 自行选择

#新建vmrebot.sh 文件
mkdir  vmrebot.sh

#获取指定虚拟机ID
[root@localhost:~] esxcli vm process list    #列出所有运行状态的虚拟机


[root@localhost:~] vim-cmd vmsvc/getallvms |grep "<vm name>"    #通过虚拟名称过去虚机ID

#重启虚拟机
[root@localhost:~] vim-cmd vmsvc/power.reboot <vm id>

#编辑
vi vmrebot.sh

#内容如下
#!/bin/bash

vim-cmd vmsvc/power.getstate 4 | grep "Powered on"    #获取虚机状态

ret=$?

if [ $ret == 1 ]
then
        echo "power on the vm!"
       vim-cmd vmsvc/power.on 4
else
        echo "do nothing!"
fi

 

提醒: 脚本中10 是对应要重启虚拟机的ID  记得修改

设置定时任务实现指定vm定时重启

ESXi 设置定时任务与Linux有些差异,定时任务需写入:/var/spool/cron/crontabs/root 文件

先对/var/spool/cron/crontabs/root 文件进行备份:

[root@localhost:~] cp /var/spool/cron/crontabs/root /var/spool/cron/crontabs/root.old
编辑/var/spool/cron/crontabs/root 文件,设置每天8:00进行重启:

[root@localhost:~] /bin/echo “0 8 * * * /bin/sh /vmrebot.sh” >> /var/spool/cron/crontabs/root
重启crond进程:

[root@localhost:~] cat /var/run/crond.pid #获取crond进程ID
2098095
[root@localhost:~] kill 2098095
[root@localhost:~] kill 2098095 #重复执行kill,确认进程已终止
sh: can’t kill pid 2098095: No such process
[root@localhost:~] /usr/lib/vmware/busybox/bin/busybox crond #重新启动crond进程
[root@localhost:~] cat /var/run/crond.pid #再次查看进程ID是否更新
89121397

补充说明:

power.on  启动

power.of   关机

power.reboot 重启

 

 

 

 

 

THE END
喜欢就支持一下吧
点赞51 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容