ESXi主机定时开关机设置

 happyzxb   2020-08-03 23:53   5825 人阅读  0 条评论

ESXi的版本是6.7:)如果版本差异太大可能不适用。

1. 首先是如何定时关机的问题

首先是关机的问题服务器系统不存在计划性关机的功能,只能通过脚本实现。

在esxi中不支持cron命令,只能直接编辑cron文件,文件文件的路径是:

/var/spool/crontab/root

真接修改这个root文件意义并不大,因为一旦ESXi重启,这个文件会被重置。此时需要修改/etc/rc.local.d./local.sh,在exit 0这一行之前添加如下的脚本:

##以#开头的是注释行,可不添加

#get the cron service pid and kill it.

#杀掉已经存在的cron进程 

/bin/kill $(cat /var/run/crond.pid)

#add shutdown script to crontab(root)

#修改/var/spool/crontab/root文件,增加相应的执行配置

#待修改的内容包括:

# 45 17 * * * 执行的时间,与cron相同,注意是UTC时间需换算

#/vmfs/volumnes/datastore1/autoshutdown.sh执行脚本路径

#注意一定要保存到datastore1这样的重启不会丢失的位置

#/var/spool/cron/crontabs/root是root用户cron配置文件位置,一般不用修改

/bin/echo ’45 17 * * * /vmfs/volumes/datastore1/autoshutdown.sh’ >> /var/spool/cron/crontabs/root

#restart cron service

#重启cron进程(将加载修改后的root文件)

/usr/lib/vmware/busybox/bin/busybox crond

注意注意注意

修改完/etc/rc.local.d./local.sh文件后,工作没有结束,需要执行一次/sbin/auto-backup.sh,将修改后的local.sh文件保存,否则结果将和之前的root文件一样,重启后丢失。

2. 接下来是关机脚本的内容

#!/bin/sh

#shutdown all VMs(2,3,9 is VMID,add your VMIDs here)

vim-cmd vmsvc/power.off 2

vim-cmd vmsvc/power.off 3

vim-cmd vmsvc/power.off 9

#Poweroff Host

/sbin/poweroff

脚本中的vim-cmd vmsvc/power.off 2是关机命令,将对指定的虚拟机(VMID)发送关机命令,在宿主机关机前关闭所有虚拟机,这一操作是否有必要我不确定。我的ESXi上运行了NAS,为保护数据加这一段。

最后是关机命令。

后面查了一下,其实是有点画蛇添足了,因为poweroff就相当于直接拔插头……应该用power.shutdown,但是这个命令是异步的,后面直接跟/sbin/poweroff的话,效果未知:)

后面干脆改了,因为只有NAS是一直开机,其它虚拟机可能是不开机的,所以在NAS中自己定义的了一个计划性关机,这一部分相当于无效,可以只保留/sbin/poweroff。

附几个相关命令:

vim-cmd vmsvc/getallvms 查询所有已配置的虚拟机,可获得VMID

vim-cmd vmsvc/power.getstate VMID 通过VMID查询相应的虚拟机的当前状态(开关机)

vim-cmd vmsvc/power.shutdown VMID发送关机信号(命令),但操作系统未必会真正关机。

vim-cmd vmsvc/power.off VMID 直接关机(相当于关电源)

3. 开机:)

通过ESXi是不能实现开机,可以借助如下方案:

BIOS如果支持定时开机,可以使用,就是需要修改配置时很麻烦。

BIOS中可设置断电后再恢复时自动开机,配合智能插座的定时通断电功能,实现定时开机。

注意:这个功能可能对某些主板是无效的!我目前使用的这个主板的设置就是:只有当意外断电(非正常关机)后断电再通电时自动启动,如果是正常关机后哪怕再断电通电也不会开机。

BIOS中可设置WOL唤醒,通过路由器等执行WOL唤醒脚本:)

ESXI主机定时重启脚本

通过shell登陆ESXI主机,编辑脚本.完成定时重启物理主机.

1.开启主机的ssh功能。

2.编辑脚本如下.可以使用vi编辑.

#不需要的参数在前面加# 注释掉

#!/bin/sh

#设置天

sleep  3d       

#设置小时       

sleep  5h

#设置分钟

sleep 15m

#设置秒

sleep 23s

#关闭虚拟机

/bin/shutdown.sh

#执行重启

reboot

3.使用命令chmod +x给脚本一个执行权限

ESXI中除了数据存储目录,其它目录创建的文件,重启后自动丢失,因此最好把脚本放存储目录下:/vmfs/volumes/{安装ESXI时所取的存储器名字}

综合上面的内容,esxi定时重启可以实现,具体方法,使用时需灵活变化


本文地址:https://zxbblog.com/?id=222
版权声明:本文为原创文章,版权归 happyzxb 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?