张晨的个人博客

Linux监控Window虚拟机是否正常运行脚本带重启操作

张晨的个人博客2018-08-31综合技术 53695 0A+A-

环境:

Linux:Centos7
VMware版本:VMware Workstation 14.1.1 build-7528167
Window版本:WindowsServer2008x64
Window镜像地址:/home/work/WindowsServer2008x64/Windows Server 2008 x64.vmx

Window虚拟机自动启动文件:

/home/work/startVm.sh(此文件自动启动配置到了/etc/rc.local中)

#!/bin/bash
#chkconfig: 2345 80 90
#description:start vm and windows 
vmrun -T ws start "/home/work/WindowsServer2008x64/Windows Server 2008 x64.vmx" nogui

监控虚拟机是否正常运行命令shell脚本:

/home/work/ping.sh

#!/bin/sh
#ping虚拟机的IP两次,此IP以虚拟机正式IP为准,如果无法ping通则重启服务器
ping 192.168.1.10 -c 2  
if [ $? -eq 0 ];then
 echo "window is ok!"
else
 echo "stop vm"
 #关闭虚拟机,不管是否启动,此地址以服务器的自动启动的虚拟机地址为准
 vmrun stop '/home/work/WindowsServer2008x64/Windows Server 2008 x64.vmx' 
 sleep 10
 echo "kill -9 vmware"
 #杀掉vmware所有进程,vmware地址可能不一样,建议ps -aux|grep vmware看下,这里注意下如不杀掉进程,直接掉用sh /home/work/startVm.sh,在crontab定时任务启动本shell脚本会提示程序已经执行
 ps -ef|grep '/usr/lib/vmware/bin/vmware'|grep -v grep|awk '{print $2}'|xargs kill -9 
 sleep 10
 echo "start vm"
 sh /home/work/startVm.sh #重新启动虚拟机
fi

配置crontab启动

crontab -e
#加入以下命令,表示每天12点10分检查虚拟机是否正常启动
10 12 * * * sh /home/work/ping.sh
#wq保存退出
#查看crontab运行日志
tail -f /var/log/cron


文章关键词
linux
VMware
发表评论