LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1290|回复: 5

如何判断网卡有没有down掉,并重新up起来.

[复制链接]
发表于 2005-9-20 18:02:07 | 显示全部楼层 |阅读模式
我有一台放在办公室里的主机,装的是RHEL AS4,配有一个公网IP,
但是平时有人偶然会把我这个IP占掉,然后好像linux会自动把网卡down掉,防止冲突产生,因为我不是经常去办公室,一般都是ssh上来,网卡一down掉,我就没办法了,只好赶去办公室,
我写了一个cron,让网卡没半个小时重启动一次,service network restart,
但是我很快发现那不合理.因为在没有被占用掉的情况下,重启网卡会影响到正常服务,
而且万一被占掉的一瞬间不能很快回复,要到半个小时后才能回复.
那么我想能否写一个shell每隔多少多少秒,判断一下网卡是否被挂起,如果是,那么就重新启动network服务,
请高手帮忙.
发表于 2005-9-21 00:55:48 | 显示全部楼层
精华区里应该我的,我记得!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-29 10:02:21 | 显示全部楼层
在精华区找了好久,没有。。希望哪个达人帮一把。
回复 支持 反对

使用道具 举报

发表于 2005-9-29 11:29:14 | 显示全部楼层
#!/bin/bash
TestIP=www.google.com #你指定的某个能探测到的IP
while [ 1 ]
do
    nmap $TestIP | grep down >/dev/null
    if [ $? = 0 ]
    then
        date>>log
        ifdown eth0
        ifup eth0
    fi
    sleep 10
done
回复 支持 反对

使用道具 举报

发表于 2005-10-1 08:19:35 | 显示全部楼层
是判断网卡本身(eth0之类的),还是判断连接(比如ADSL之类要连接到Internet的)?
回复 支持 反对

使用道具 举报

发表于 2005-10-11 18:38:21 | 显示全部楼层
perl code:
#!/usr/bin/perl -w
$fail_test=0;
$pin='';
while (1)
{
sleep 45;
$pin=`ping -w 2 202.96.128.68 |grep "packet"`;
if ($pin=~ /100% loss/) {
     $fail_test++;
    if ($fail_test>5) {
`ifdown eth0`;
`ifup eht0`;
  }
} else {
$fail_test=0;
  }
}


shell code:

回复 支持 反对

使用道具 举报

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

本版积分规则

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