linux网卡掉包或挂掉解决办法

之前公司的系统由于网卡问题,经常出现掉包(掉包排除攻击的 因素)或者突然挂掉,

严重影响服务的正常提供,因此想在出现此问题时自动解决。

思路:对网卡检测掉包情况,或者用ping检测,出现了,就重启哈网卡 。瞧是很简单吧!

代码如下:

 代码如下 复制代码
#安装帮助: mkdir  /cyc
#/cyc/renetwork.log为日志文件
 
#!/bin/bash
# 2013-2-17 @凹凸曼
# ping timeout  restart network
# lastmodtime 2013-3-19
pingNetwork(){
        local c=$1
        local pcount=$2
        local dst=192.168.0.143    #修改为你的交互机或者路由器ip
        if [[ ! $pcount =~ ^[0-9]+$ ]];then
                pcount=5
        fi
        loss=`ping -c $pcount  $dst|grep loss|awk '{print $6}'|cut -d% -f 1 `
        if [[ ! $loss =~ ^[0-9]+$ ]];then
                loss=100
        fi
 
        if [ $loss -gt 0 ]; then
                ifdown $c
                sleep 3
                ifup $c
                echo `date "+%Y%m%d %T"`": $pcount ping $loss% loss">>/cyc/renetwork.log
                sleep 30
        fi
 
}
 
#start dst eth
stopEth(){
        local c=$1
        local et=`service network status |tail -1|grep "$c"`
 
        if [ x"" == x"$et" ]; then
                ifup $c
                echo `date "+%Y%m%d %T"`":$c stop">>/cyc/renetwork.log
                sleep 30
        fi
}
#drop found
NetDrop(){
        local c=$1
        #$6 RX-DRP
        local redp=`netstat -i|grep "$c"|awk 'END{print $6}'`
        #$10 TX-DRP
        local txdp=`netstat -i|grep "$c"|awk 'END{print $10}'`
 
        if [ $redp -gt 0 ];then
                ifdown $c
                sleep 3
                ifup $c
                echo `date "+%Y%m%d %T"`":$c RX-DRP drop">>/cyc/renetwork.log
                sleep 30
        fi
 
        sleep 2
    if [ $txdp -gt 0 ];then
                ifdown $c
                sleep 3
                ifup $c
                echo `date "+%Y%m%d %T"`":$c TX-DRP drop">>/cyc/renetwork.log
                sleep 30
        fi
 
}
 
wtime=$2
eth=$1
if [[ ! $wtime =~ ^[0-9]+$ ]];then
  wtime=3
fi
if [ x"" == x"$eth" ];then
        echo "please enter the NIC name!"
        exit
fi
while [ 1 ]
        do
 
        stopEth $eth
        sleep $wtime
        NetDrop $eth
        sleep $wtime
        pingNetwork $eth 1
 
done
 

程序运行至目前的日志结果如下:

 代码如下 复制代码
20130319 12:23:01: eth0 1 ping 100% loss
20130319 13:43:50: eth0 1 ping 100% loss
20130319 18:11:18: eth0 1 ping 100% loss
20130323 08:04:59: eth0 1 ping 100% loss
20130323 14:41:04: eth0 1 ping 100% loss
20130324 12:49:04: eth0 1 ping 100% loss
20130327 13:15:47: eth0 1 ping 100% loss
20130401 11:17:42: eth0 1 ping 100% loss
20130402 09:02:14: eth0 1 ping 100% loss
20130403 08:49:30: eth0 1 ping 100% loss
20130404 20:21:46: eth0 1 ping 100% loss
20130407 18:44:57: eth0 1 ping 100% loss
20130408 10:46:53: eth0 1 ping 100% loss
20130408 14:41:06: eth0 1 ping 100% loss
20130408 14:47:24: eth0 1 ping 100% loss
20130408 15:23:02:eth0 RX-DRP drop
20130415 08:30:09: eth0 1 ping 100% loss
20130415 11:16:16: eth0 1 ping 100% loss
20130417 08:05:41: eth0 1 ping 100% loss
20130419 08:04:19: eth0 1 ping 100% loss
20130419 10:40:51: eth0 1 ping 100% loss
20130419 11:33:14: eth0 1 ping 100% loss
20130419 19:03:03: eth0 1 ping 100% loss
20130421 16:10:55: eth0 1 ping 100% loss
20130422 07:47:34: eth0 1 ping 100% loss
20130423 07:15:07: eth0 1 ping 100% loss
 

呵呵,自动解决了网卡掉包或挂掉的烦恼!您是不是很爽!
忘记了说鸟,此程序运行环境Red Hat Enterprise Linux Server release 5.4或者Centos6.3
其他linux环境估计问题不大,这里就不测试鸟!

时间: 2025-01-17 23:54:40

linux网卡掉包或挂掉解决办法的相关文章

VirtualBox安装Linux增强插件失败的解决办法

我是在windows下安装的VirtualBox(简称Vbox),并且顺利的在Vbox上安装了fedora(Linux).因为在没有安装增强插件时,虚拟机的分辨率是无法调整的,很难看.所以我就在Vbox点击了那个安装增强插件的选项.但是总是安装到一半失败. 失败现象: 在按下那个选项的时候,虚拟机中的Linux会挂载一个光驱,然后我们可以从光驱中找到适合的安装脚本,然后执行那个脚本安装.注意要使用sudo,还有看准脚本,虽然不符合的话脚本也执行不了. 如果就这么执行能成功,就没必要写这个了.  

局域网掉包常见故障解决办法

网络故障是在所难免的,重要的是应快速隔离和排除故障.网吧的维护人员应该具备基本的网络知识,能够解决一些常见的网络问题.本文列举几种常见的网络故障问题分析一下,希望能够提高大家的分析能力和解决故障的能力. 故障一.100Mb的局域网速度没有10Mb的局域网速度快 具体表现:由于所有工作站都是10-100Mb自适应网卡,而原来的全部采用的是10Mb的交换机,现将网络升级一下,全部换成100Mb交换机,发现交换机更换后,速度还没有原来快.部分机器甚至不能上网. 故障分析:我们用ping命令ping一下

Windowns 10新系统不能上网怎么办 网卡驱动不能用解决办法

1.我们在电脑中 右键计算机--属性--设备管理器--网络适配器  打开进入,如下图所示. 2.然后安装驱动人生网卡版 这个可以百度搜索下载了,在此111cn小编不提供下载地址 修复完成,驱动人生会显示修复结果,此时,网卡驱动问题便解决好了. 其实我们还有一种办法就是更新网卡驱动了,这种方法少知道能不能行得通了,不过小编觉得能解决问题就好.

Win7系统网卡被禁用的解决办法

  Win7系统网卡总是莫名其妙被禁用这怎么办呢?下面小编就为大家介绍一下网卡被禁用怎么恢复. 1.首先,右击桌面上的计算机选择属性,如图: 2.然后打开设备管理器,如图: 3.选择网络适配器中的网卡,如图: 4.双击后,选择电源管理选项卡,将将"允许计算机关闭此设备以节约电源"选项 取消,即可解决Win7系统网卡经常被禁用的问题.

网卡常见故障及解决办法

  第一步:硬件诊断 在 Windows 环境下运行BACS2,通过"诊断"选项卡,我们可以对 Broadcom NetXtreme Gigabit Ethernet 适配器的物理组件进行诊断测试.测试在选定的物理组件上连续执行.每次执行测试时,"通过/失败"列中的通过和失败次数会增加(注:运行这些测试时,网络连接暂时会断开). 测试项目详解: 测试项目1.控制寄存器:通过将各种值写入寄存器并验证结果,验证网络适配器寄存器的读写能力.适配器驱动程序使用这些寄存器执行

linux inode耗尽解决办法 删文件不行

问题描述 linux inode耗尽解决办法 删文件不行 如题 /var/目录有空间 但是无法创建文件 inode 耗尽 删除文件不行 ,试过卸载 重新挂载 也不行 解决方案 df -i 显示什么?

keystore-修改了系统时间,导致oem挂掉,然后oms也无法启动。为了记录这个解决办法,贴帖如下,谢谢!

问题描述 修改了系统时间,导致oem挂掉,然后oms也无法启动.为了记录这个解决办法,贴帖如下,谢谢! 修改了系统时间,导致oem挂掉,然后oms也无法启动.为了记录这个解决办法,贴帖如下: Note: In case of a multi-OMS setup, perform the steps below on each OMS Host 1.Make sure you take backup of DemoIdentity.jks and DemoTrust.jks files in th

Linux终端乱码的解决办法

用SSH连接Linux时经常会遇到乱码的情况,痛苦了好久,在网上找到一个解决办法,编辑~/.bash_profile文件,加入下面两行: LANG="zh_CN.GB18030"LANGUAGE="zh_CN.GB18030" 用了一段时间后发现,这样更改后在VI中是正常显示中文的,可是其他地方还是乱码,比如重启服务等.为了让所有界面都正常显示中文,需要编辑/etc/sysconfig/i18n,将原来的LANG="zh_CN.UTF-8"注释掉

Linux找不到主机名解决办法

Linux找不到主机名解决办法 [root@mas eclipse-plugin]# ant -Declipse.home=/path/to/eclipse -Dversion=1.2.1 -Dcommons-cli.version=1.2 Buildfile: /root/bin/hadoop-1.2.1/src/contrib/eclipse-plugin/build.xml check-contrib: init:      [echo] contrib: eclipse-plugin i