全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1020|回复: 9
打印 上一主题 下一主题

喜讯,自动监测hyper虚拟机状态脚本接近成功,有个小问题

[复制链接]
跳转到指定楼层
1#
发表于 2023-6-22 23:09:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我一直想实现自动监测hyper虚拟机状态,如果出问题,就自动重启。
今天一个大神告诉了我一些代码,
见贴子 https://91ai.net/thread-1181480-1-1.html

我在他的基础上改了一下代码,
现在极限接近成功
代码如下

  1. # 设置hyper虚拟机名称
  2. $VMName = "ikuai"
  3. # 设置关闭和重启间隔时间,为什么要设置这个时间,因为我想更稳妥点。
  4. $RetryInterval = 5 # 单位为秒

  5. ping -c 1 192.168.8.2 #虚拟机的局域网ip
  6. if ( $? -ne 0){
  7. Write-Host "$VMName 正常运行"
  8. }
  9. else{
  10. Write-Host "$VMName 没有正常运行,正在强行关闭,重启"
  11. Stop-VM -Name $VMName
  12. Start-Sleep -Seconds $RetryInterval
  13. Start-VM -Name $VMName
  14. }
复制代码


现在说测试结果,
如果是ping IP 会出现奇怪的结果,反馈如下:
  1. PS C:\Users\Administrator\Desktop> C:\Users\Administrator\Desktop\jiance.ps1

  2. 正在 Ping 192.168.8.2 具有 32 字节的数据:
  3. 来自 192.168.8.8 的回复: 无法访问目标主机。
  4. 来自 192.168.8.8 的回复: 无法访问目标主机。
  5. 来自 192.168.8.8 的回复: 无法访问目标主机。
  6. 来自 192.168.8.8 的回复: 无法访问目标主机。

  7. 192.168.8.2 的 Ping 统计信息:
  8.     数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
  9. ikuai 正常运行
复制代码


我测的是一个不存在的内网iP,所以只能显示未正常运行。
但是明明是ping 8.2
结果收到8.8的回复。
最后仍然显示正常运行。

如果把IP改成一个无法访问的网址,
则脚本完美运行。
但是我现在只能是 ping 内网ip

求高手指教。
2#
 楼主| 发表于 2023-6-22 23:11:44 | 只看该作者
顺便问一下,
ping -c 1 192.168.8.2  
这个ping的结果 怎样不显示。

如果是 linux
可以在后面写上   > /dev/null 2>&1
但是在win系统,这样不行。
3#
发表于 2023-6-22 23:32:44 | 只看该作者
不会显 ping 192.168.1.1 > nul

点评

谢谢  发表于 2023-6-22 23:34
4#
发表于 2023-6-22 23:35:43 | 只看该作者
这种事情chatgpt最会干了
5#
 楼主| 发表于 2023-6-23 06:43:30 | 只看该作者
32MB.CN 发表于 2023-6-22 23:32
不会显 ping 192.168.1.1 > nul

经测试不能加这个,
加了这个,所有测试都显示未正常运行。
7#
发表于 2023-6-23 14:36:32 | 只看该作者
本帖最后由 sagerking 于 2023-6-23 14:38 编辑

靠ping检测啊?给你段代码思路,你可以根据需求看能不能参考
  1. #!/bin/bash
  2. R_IP=`ping 1.1.1.1 -c4 | awk '/^4/{print $4}'`
  3. if [ $R_IP -le 1 ] ;

  4.         then
  5.         
  6.         systemctl restart ****

  7.                 fi
复制代码
8#
 楼主| 发表于 2023-6-23 14:50:42 | 只看该作者
sagerking 发表于 2023-6-23 14:36
靠ping检测啊?给你段代码思路,你可以根据需求看能不能参考

运行不了,你这个
R_IP=`ping 1.1.1.1 -c4 | awk '/^4/{print $4}'`
我无法转成在 powershell 运行的 代码
没技术。
9#
发表于 2023-6-25 15:20:58 | 只看该作者
不支持http/3,不支持websocket,grpc估计也不支持吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-6-21 13:33 , Processed in 0.065994 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表