设为首页收藏本站

简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย

 找回密码
 立即注册
img_loading
智能检测中

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888广告投放联系QQ68610888
查看: 929|回复: 11

[虚拟机相关] 在PVE系统中定时检测网络,如果网络不通则重启PVE系统

[复制链接]
发表于 2025-5-14 14:09 | 显示全部楼层 |阅读模式
本帖最后由 shadow350424 于 2025-5-15 18:37 编辑

  最近家里网络不稳定,想着说看看有没有可以在检测到PVE无法联网的情况下自动重启的教程,偶然间在论坛中看到了一篇相关的文章,按照帖主的教程和另一个大佬回复的教程尝试了,本人对代码是完全不懂的,不知道是没设置好还是咋回事,在我那个PVE上运行有问题,无法联网时不会自动重启,最后搞不定就只好找AI帮忙写了一个脚本和教程,给AI的提出要求和AI提供的脚本如下。按照AI给的脚本已经正常运行了,测试过,断网后PVE系统会自动重启。有需要的亲们可以自行取用。因为本人对代码是完全不懂,要是有需要改进的地方还请各位大佬帮忙指正。



在Proxmox Virtual Environment系统中每5分钟检测一次网络,如果5次检测网络不通就重启PVE系统,重启后等待10分钟再检测网络是否接通。检测时使用百度网京东官网,并且需要检测到这两个网站都无法接通才算一次网络不通。这个脚本要设置为开机后自动启动。



以下是针对您的需求编写的 Proxmox VE 网络监控与自动重启脚本详细使用教程,确保逻辑严谨、操作清晰。
脚本功能概述
[td]  
   
项目
   
   
内容
   
  
检测周期
  
  
每5分钟
  
  
检测目标
  
  
百度(www.baidu.com)+ 京东(www.jd.com
  
  
判定条件
  
  
两个网站均无法访问 才计为一次失败
  
  
重启机制
  
  
连续5次失败后重启系统
  
  
重启后行为
  
  
等待10分钟再恢复检测
  
  
日志记录
  
  
所有操作记录到 /var/log/pve_network_monitor.log
  
  
自启动机制
  
  
通过 systemd 服务实现开机自启
  
📄完整脚本内容
Bash
#!/bin/bash

# 配置参数
LOGFILE="/var/log/pve_network_monitor.log"
WAIT_TIME=300         # 每5分钟检测一次
REBOOT_THRESHOLD=5    # 连续失败5次触发重启
REBOOT_DELAY=600      # 重启后等待10分钟再检测
WEBSITE1="www.baidu.com"
WEBSITE2="www.jd.com"

# 日志记录函数
log() {
    echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "$LOGFILE"
}

# 网络检测函数(同时检测百度和京东)
check_connectivity() {
    # 检测网站1(百度)
    curl -A "Mozilla/5.0" -s --head http://$WEBSITE1 | grep "200 OK" > /dev/null
    local status1=$?

    # 检测网站2(京东)
    curl -A "Mozilla/5.0" -s --head http://$WEBSITE2 | grep "200 OK" > /dev/null
    local status2=$?

    # 若两个网站均无法访问,返回1(失败)
    if [ "$status1" -ne 0 ] && [ "$status2" -ne 0 ]; then
        return 1
    else
        return 0
    fi
}

# 初始化等待(重启后首次运行)
log "网络监控服务启动,等待10分钟缓冲期..."
sleep $REBOOT_DELAY

# 主监控循环
failure_count=0
while true; do
    if check_connectivity; then
        log "网络状态正常,失败计数器重置为0"
        failure_count=0
    else
       failure_count=$((failure_count+1))
        log "网络异常检测第${failure_count}/${REBOOT_THRESHOLD}次"

        if [ "$failure_count" -ge "$REBOOT_THRESHOLD" ]; then
            log "达到重启阈值,将在5秒后重启系统..."
            sleep 5
            shutdown -r now
            exit 0  # 重启后脚本将重新启动
        fi
    fi

    sleep $WAIT_TIME
done

🛠使用教程(详细步骤)
游客,如果您要查看本帖隐藏内容请回复

🧠逻辑说明与注意事项
检测逻辑

  • 双重验证:同时检测百度和京东的 HTTP 响应头是否为 200 OK
  • 失败判定:只有当 两个网站均无法访问 时,才计为一次失败。
  • User-Agent:添加 Mozilla/5.0 模拟浏览器访问,避免被反爬机制拦截。
注意事项

  • 依赖项 确保系统已安装 curl,否则脚本无法运行。
  • 权限问题 由于脚本中使用了 shutdown     -r now 重启命令,必须以 root 用户运行,确保 systemd 服务配置中 User=root
  • 日志分析建议 建议定期查看日志 /var/log/pve_network_monitor.log,确认检测逻辑是否稳定运行。
  • 网络隔离测试 可通过以下命令模拟网络中断测试脚本行为:
Bash
# 禁用网络接口(如 eth0
ifconfig eth0 down

# 恢复网络
ifconfig eth0 up

  • 重启后行为 脚本在重启后会等待10分钟再开始检测,避免因网络接口未完全初始化而误判。
总结
通过此脚本,您的 Proxmox VE 系统将具备 双重验证 的网络健康检查能力,仅当百度和京东均无法访问时才触发系统重启。脚本已设置为开机自启,适用于软路由、虚拟化集群等场景。
如需进一步扩展(如支持邮件通知、多网卡检测),可在此基础上添加功能。





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
发表于 2025-5-15 22:29 | 显示全部楼层
pve不是这样玩滴

点评

我就是一个纯小白,不懂这些。家里网络有时候会莫名其妙连不上,所以想着说整一个自动检测网络不通就会重启的脚本。  详情 回复 发表于 2025-5-16 16:29
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2025-5-16 08:20 | 显示全部楼层
PVE系统,还能这样玩

点评

小白不懂啊。就想说整一个网络连不上时能自动重启的脚本,反正自己家里用的,断一会儿网影响也不大,防止不在家时一天都没网络,家人无法使用WIFI。  详情 回复 发表于 2025-5-16 16:31
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2025-5-16 11:01 | 显示全部楼层
感觉命令不错
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-16 16:29 | 显示全部楼层

我就是一个纯小白,不懂这些。家里网络有时候会莫名其妙连不上,所以想着说整一个自动检测网络不通就会重启的脚本。

点评

你的pve都做了些什么呢  详情 回复 发表于 2025-5-16 21:43
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-16 16:31 | 显示全部楼层
w0798 发表于 2025-5-16 08:20
PVE系统,还能这样玩

小白不懂啊。就想说整一个网络连不上时能自动重启的脚本,反正自己家里用的,断一会儿网影响也不大,防止不在家时一天都没网络,家人无法使用WIFI。
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2025-5-16 21:43 | 显示全部楼层
shadow350424 发表于 2025-5-16 16:29
我就是一个纯小白,不懂这些。家里网络有时候会莫名其妙连不上,所以想着说整一个自动检测网络不通就会重 ...

你的pve都做了些什么呢

点评

爱快、OP、DSM7、Windows10  详情 回复 发表于 2025-5-17 08:37
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-17 08:37 | 显示全部楼层
linuxunion 发表于 2025-5-16 21:43
你的pve都做了些什么呢

爱快、OP、DSM7、Windows10

点评

如果你是用op做网关,应该重启op,而不是pve  详情 回复 发表于 2025-5-17 22:40
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2025-5-17 22:40 | 显示全部楼层
shadow350424 发表于 2025-5-17 08:37
爱快、OP、DSM7、Windows10

如果你是用op做网关,应该重启op,而不是pve

点评

好的,谢谢了,我用AI再改改脚本试试看,OP我现在只是挂了海淘上网,有几个设备固定了IP可以海淘上网,其余设备是爱快当网关的。  详情 回复 发表于 2025-5-18 08:28
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-18 08:28 | 显示全部楼层
linuxunion 发表于 2025-5-17 22:40
如果你是用op做网关,应该重启op,而不是pve

好的,谢谢了,我用AI再改改脚本试试看,OP我现在只是挂了海淘上网,有几个设备固定了IP可以海淘上网,其余设备是爱快当网关的。
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2025-5-18 21:35 | 显示全部楼层
支持一下!!!!!
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2025-5-31 15:00 来自手机 | 显示全部楼层
66666666
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛

只谈技术、莫论政事!切勿转播谣言!为了你也为了他人。
只谈技术、莫论政事!(点击见详情) 切记不要随意传播谣言,把自己的日子过安稳了就行,为了自己好也为了大家好。 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。

查看 »

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2025-6-11 12:09

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

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