PVE软路由网络连通性测试脚本,自动重启虚拟机

最近软路由中的爱快或openwrt偶尔有崩溃情况,导致网络中断,需要手动恢复。为了之后遇到类似问题PVE可以一定程度上自修复,我编写了如下脚本,用于监控PVE的网络连通性,如果网络不通则硬重启某个/些虚拟机。

将一下代码上传至PVE环境,并添加至cron自动执行即可。

#! /bin/bash
server1="www.baidu.com"
# server1="1.1.2.2" # 模拟ping不通的测试地址
log=internet.log

# 判断输出日志文件是否存在,如果否则创建
if [ ! -f $log ]
then
    touch $log
fi

# 判断日志是否达到最大行数,如果是则清空
linecount=`wc -l $log | awk '{print $1}'`
if [ $linecount -ge 1000 ]
then
    echo "" > $log
fi

clear

while true
do
    ping -c 4 -W 5 $server1
if [ $? != 0 ]
then
    echo "--------------------------------------" >> $log
    echo "`date '+%Y-%m-%d %H:%M:%S'` | 网络异常" >> $log
    echo "Unable to connect to the network" >> $log
    sleep 3
    echo "`date '+%Y-%m-%d %H:%M:%S'` | 重启 VM 100 - iKuai" >> $log
    echo "Rebooting VM 100 - iKuai" >> $log
    # VM 100 iKuai
    qm reset 100
    sleep 10
    echo "`date '+%Y-%m-%d %H:%M:%S'` | 重启 VM 101 - OpenWrt" >> $log
    echo "Rebooting VM 101 - OpenWrt" >> $log
    # VM 101 OpenWrt
    qm reset 101
    sleep 10
    break
else
    echo "--------------------------------------" >> $log
    echo "`date '+%Y-%m-%d %H:%M:%S'` | 网络正常" >> $log
    echo "Connection looks fine" >> $log
    break
fi
done

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注