ESXi的虚拟机开机自启动功能,如果虚拟机不可用的话是没法实现开机自启动的,比如主机的开机速度快而连的存储开机慢。

可以设定开机一段时间内检测状态并开机。

脚本结合crond定时执行,能做到虚拟机vms定时开机关机,后台定时检测虚拟机停止就自动开机,让虚拟机一直运行。

思路

1.检测虚拟机是否已开机

2.如果虚拟机状态开机则不执行任何操作,退出;否则开机打开电源

3.用crond定时执行检测脚本

具体操作

esxcli vm process list                              # 利用esxcli列出ESXi服务器上VMs(运行状态的)

vim–cmd vmsvc/getallvms |grep <vm name>  # 获取出vmid来,开机命令会用到

vim-cmd vmsvc/power.on <vmid>  # 执行开机

开机检测

vi /vmfs/volumes/datastore222/startVM.sh
注:之所以要在volume上创建脚本是因为如果直接在/etc等目录创建后重启就没了。

通过vim-cmd vmsvc/getallvms获取虚拟机名称与编号。

比如我的虚拟机名称是’Server-2016’,vmid是18,#是方便调试的注释。

前50分钟每5分钟检测一次,检测到开机后退出,根据自己需求修改:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

#!/bin/sh

#后面的数字为虚拟机编号

for vm in 18 83 86

do

{

for i in {1..11}

do

#vim-cmd vmsvc/getallvms |grep <vm name>

#vim-cmd vmsvc/power.getstate <vmid>

#vim-cmd vmsvc/power.on <vmid>

vim-cmd vmsvc/power.getstate $vm|grep 'Powered on'

ret=$?

if [ $ret == 0 ]

then

#echo $vm' is running,do nothing..'

exit 0

else

#echo $vm' is stoped,starting..'

vim-cmd vmsvc/power.on $vm

#echo 'Done.'

fi

sleep 5m;

done

}&

done

最后要加上执行权限 chmod 744 startVM.sh

修改/etc/rc.local.d/local.sh实现重启也能自动添加计划任务:

加入这一行/vmfs/volumes/datastore222/startVM.sh

后台一直运行

1.创建计划任务脚本:

vi /vmfs/volumes/datastore222/test.sh
注:之所以要在volume上创建脚本是因为如果直接在/etc等目录创建后重启就没了。

比如我的虚拟机名称是’Server-2016’,vmid是18,#是方便调试的注释,简单的脚本是这样:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

#!/bin/sh

#vim-cmd vmsvc/getallvms |grep <vm name>

#vim-cmd vmsvc/power.getstate <vmid>

#vim-cmd vmsvc/power.on <vmid>

esxcli vm process list|grep 'Server-2016'

ret=$?

if [ $ret == 0 ]

then

#echo 'Server-2016 is running,do nothing..'

exit 0

else

#echo 'Server-2016 is stoped,starting..'

vim-cmd vmsvc/power.on 18

#echo 'Done.'

fi

别忘了最后要加上执行权限 chmod 744 test.sh

2.修改/etc/rc.local.d/local.sh实现重启也能自动添加计划任务:

1

2

3

4

5

chmod +w /var/spool/cron/crontabs/root

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

/bin/echo '*/10 * * * * /vmfs/volumes/datastore222/test.sh' >> /var/spool/cron/crontabs/root

crond

exit 0

定时任务请补充下crontab的知识。

补充:

1、控制虚拟机开关机

To power on a virtual machine from the command line:

List the inventory ID of the virtual machine with the command:

1

vim-cmd vmsvc/getallvms |grep <vm name>

Note: The first column of the output shows the vmid.

Check the power state of the virtual machine with the command:

1

vim-cmd vmsvc/power.getstate <vmid>

Power-on the virtual machine with the command:

1

vim-cmd vmsvc/power.on <vmid>

关机就是把 power.on 改为 power.off 就可以了.

2、shell中特殊变量含义
$0:
执行脚本的名字
$*和$@:
将所有参数返回
$#:
参数的个数
$_:
代表上一个命令的最后一个参数
$$:
代表所在命令的PID
$!:
代表最后执行的后台命令的PID
$?:
代表上一个命令执行是否成功的标志,如果执行成功则$? 为0,否则不为0

转自https://zerlong.com/697.html

VMware esxcli定时开启虚拟机、维护开机状态相关推荐

  1. VMware esxcli定时开启虚拟机

    VMware esxcli定时开启虚拟机 通过vim-cmd vmsvc/getallvms获取虚拟机名称与编号 添加定时任务 8.30 启动 vi /var/spool/cron/crontabs/ ...

  2. VMware 开启虚拟机就报错:发生错误,导致虚拟 CPU 进入关闭状态。如果虚拟机外部发生此错误,则可能已导致物理计算机重新启动。错误配置虚拟机、客户机操作系统中的错误或 VMware Workst

    在虚拟机上安装了 Ubuntu 的镜像,但是开启虚拟机的时候一直报错. 原来的版本是 VMware15 Ubuntu 18.04 后来下了新版本的VMware16 ,我是直接下载安装的,没有删掉15版 ...

  3. 关于esxi6.5开启虚拟机提示文件被锁定,无法开机

    我当前环境vcenter 已经宕机了没时间弄, 就在esxi主机上断开连接. 前两天帮群友解决一个问题,提示虚拟机无法开机. 提示:"无法锁定文件 无法打开磁盘"/vmfs/vol ...

  4. VMware ESXi 6.7服务器设置开机自动启动虚拟机

    VMware ESXi 6.7服务器设置开机自动启动虚拟机,具体操作步骤如下 1.登陆到VMware ESXi 6.7  web 界面 2.导航器-->主机-->管理  将自动启动修改为 ...

  5. firewalld/iptables防火墙维护和状态查询命令(防火墙重载,区域操作命令,开启服务或端口,堵塞端口,iptables规则添加和删除)

    文章目录 firewalld防火墙维护和状态查询命令 firewalld防火墙状态查询命令 firewalld防火墙重载配置命令 重新加载firewalld的配置 查询预定义信息命令 firewall ...

  6. 升级到win11后VMware不能开启虚拟机了

    1.问题描述 本来是win10系统,VMware都配置好了,可以正常使用. 后来升级成win11了,VMware不能开启虚拟机,报错信息如下图: 2.解决过程 一般都是卸载 Hyper-v ,禁用 D ...

  7. VMware虚拟机修改开机密码(win系列)

    VMware虚拟机修改开机密码 下载大白菜,并且将U盘格式化 首先先到大白菜去下载格式化U盘的软件点击此处进入官网 点击迅雷下载就好 下好以后解压,得到一个exe文件,一键安装. 最后安装好了打开得到 ...

  8. 您正在通过不兼容的虚拟化管理程序运行 VMware Workstation。禁用此虚拟化管理程序后才能开启虚拟机

    场景描述: 在阿里云服务器的windowssever2012上无法安装oracleXE112数据库,因此想到在服务器上安装vmware然后再安装window7 32bit,然后再在虚拟机中安装orac ...

  9. VMware Workstation 开启虚拟机后蓝屏

    VMware Workstation 开启虚拟机后主机蓝屏 注意:不用重装系统!不用重装系统!不用重装系统! 版本:VMware Workstation Pro 15.5.0 出问题时的虚拟机:ubu ...

最新文章

  1. 【运筹学】表上作业法 ( 示例 | 使用 “ 闭回路法 “ 计算检验数判定最优解 )
  2. java 静态线程_Java线程类静态本机void yield()方法(带示例)
  3. HTML placeholder
  4. 地震时,它可以救你一命!
  5. 利用if...else if....else循环语句编程
  6. win7动态壁纸_电脑桌面美化,高清动态壁纸
  7. vs C# 强制结束进程
  8. SkipList(跳跃表)详解
  9. 转:GRE_那些不讨人爱的4字母单词
  10. ArcGis 10.2运行提示“未授权”的解决方法
  11. MikTex+texworks插入数学公式示例
  12. 基于PHP+MySQL托管中心管理系统的设计与实现
  13. (三)展望Java技术的未来
  14. 晨枫U盘维护工具V2.0版(转)
  15. 彻底剖析ISAServer客户端及配置之一
  16. **图灵杯 J** 简单的变位词
  17. 自定义View 实现左右拖动脉象图
  18. 票务管理系统项目(part1)
  19. 693-详解ICMP 协议
  20. 老罗的「聊天宝」是不是死了 ?

热门文章

  1. 福建省计算机二级知识点,福建省计算机二级语言复习资料.doc
  2. i.MX RT开发笔记-03 | i.MX RT1062地址空间映射及启动方式
  3. 羊毛大军杀入币圈,有人月入过万,有人惨遭反薅,沦为韭菜
  4. 利用Python实现四则运算
  5. 【YOLOv5】yolov5训练中遇到的问题解决:BrokenPipeError: [Errno 32] Broken pipe
  6. 车站信息管理系统Android,客运站车无线交互系统
  7. ADB连接夜神模拟器的方法
  8. 【MATLAB库函数系列】resample(重采样函数)的C语言实现【姊妹篇2纯C语言实现】
  9. c语言微课ppt嵌套函数,C语言课程中循环嵌套的微课教学设计与思考.pdf
  10. 2021年春季ACM训练赛第5场