LinuxSir.cn,穿越时空的Linuxsir!

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

看来我的网卡出问题了 常掉线

[复制链接]
发表于 2003-8-11 22:01:48 | 显示全部楼层 |阅读模式
[root@localhost scr]# cat lip
#!/bin/bash
while true
do
a=`ifconfig|grep "inet addr:"|awk '{print $2}'|tail -n 1`
if [ $a = "addr:127.0.0.1" ];then echo "network is down!";else
echo $a;fi
sleep 5;done
./lip
addr:220.173.157.168
addr:220.173.157.168
addr:220.173.157.168
addr:220.173.157.168
network is down!
addr:220.173.157.168
addr:220.173.157.168
addr:220.173.157.168
addr:220.173.157.168
addr:220.173.157.168
addr:220.173.157.168
network is down!
addr:220.173.157.168
addr:220.173.157.168
addr:220.173.157.168
addr:220.173.157.168
network is down!
network is down!
network is down!
network is down!
addr:220.173.156.169
addr:220.173.156.169
addr:220.173.156.169
network is down!
addr:220.173.155.217
addr:220.173.155.217
addr:220.173.155.217
发表于 2003-8-12 09:07:24 | 显示全部楼层
可以`ifconfig eth0`的吧。
这样就不用判断lo0了。
 楼主| 发表于 2003-8-12 10:50:55 | 显示全部楼层
最初由 Glue 发表
可以`ifconfig eth0`的吧。
这样就不用判断lo0了。


可以 正常是这样的:
[root@localhost root]# ifconfig
eth0     --- Link encap:Ethernet  HWaddr 00:E0:4C:A3:54:A0
          ------UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          ------RX packets:518 errors:0 dropped:0 overruns:0 frame:0
          ------TX packets:438 errors:0 dropped:0 overruns:0 carrier:0
          ------collisions:0 txqueuelen:100
          ------RX bytes:211907 (206.9 Kb)  TX bytes:62415 (60.9 Kb)
          ------Interrupt:11 Base address:0xc000

lo       ---- Link encapocal Loopback
          ------inet addr:127.0.0.1  Mask:255.0.0.0
         ------- UP LOOPBACK RUNNING  MTU:16436  Metric:1
          ------RX packets:56 errors:0 dropped:0 overruns:0 frame:0
          ------TX packets:56 errors:0 dropped:0 overruns:0 carrier:0
          ------collisions:0 txqueuelen:0
          ------RX bytes:2800 (2.7 Kb)  TX bytes:2800 (2.7 Kb)

ppp0      -----Link encapoint-to-Point Protocol
          --------inet addr:220.173.153.115  P-t-P:172.0.0.1  Mask:255.255.255.255
          --------UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          --------RX packets:3 errors:0 dropped:0 overruns:0 frame:0
          --------TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
          --------collisions:0 txqueuelen:3
          --------RX bytes:30 (30.0 b)  TX bytes:30 (30.0 b)
发表于 2003-8-12 11:14:33 | 显示全部楼层
  1. [$a = "addr:127.0.0.1" ]
复制代码
改成[$a = "addr:0.0.0.0" ]试试看!因为当你断线的时候你本机的IP就不会被分配!我记得你用ADSL上网,也是由ISP给你分配的动态IP,我想用他来判断也许好些;)
 楼主| 发表于 2003-8-12 11:36:15 | 显示全部楼层
好了 我改了 还是一样  
[root@localhost scr]# lip
addr:127.0.0.1
addr:220.173.154.106
addr:220.173.154.106
addr:220.173.154.106
addr:220.173.154.106
addr:220.173.154.106
addr:220.173.154.106
addr:220.173.154.106
addr:220.173.154.106
addr:127.0.0.1
addr:127.0.0.1
addr:220.173.150.3
addr:220.173.150.3
addr:220.173.150.3

ifconfig 是从不会出现0.0.0.0的 ?

斑竹 怎么去掉 addr:
发表于 2003-8-12 11:39:36 | 显示全部楼层
要不然你在进程中找到上网的进程名,根据他来判断吧~~;)
去掉addr:?用AWK吧~~;)
有个以前的讨论帖,你再仔细看看吧~~
http://www.linuxsir.cn/bbs/showthread.php?threadid=53674
 楼主| 发表于 2003-8-12 11:49:04 | 显示全部楼层
最初由 javalee 发表
要不然你在进程中找到上网的进程名,根据他来判断吧~~;)
去掉addr:?用AWK吧~~;)

while true;do ps -e|grep adsl;sleep 2;done
576 pts/0    00:00:00 adsl-connect
  576 pts/0    00:00:00 adsl-connect
  576 pts/0    00:00:00 adsl-connect
  576 pts/0    00:00:00 adsl-connect
  576 pts/0    00:00:00 adsl-connect
  576 pts/0    00:00:00 adsl-connect
  576 pts/0    00:00:00 adsl-connect
  576 pts/0    00:00:00 adsl-connect
  576 pts/0    00:00:00 adsl-connect
..................................................................
..................................................................
没问题 运行lip就有时down!

那个addr:怎么去掉? awk我不懂的
发表于 2003-8-12 12:08:49 | 显示全部楼层
用if ps -e|grep "adsl-connect"的返回状态来判断吧!
awk -F: '{print $2}'
发表于 2003-8-12 12:55:02 | 显示全部楼层
不一定是网卡不好,用adsl-setup有时会出现这类问题,如果用X生成的adsl连接就没问题,我分析了一下发现两个程序生成ifcfg-ppp0文件中有些参数是不一样的。我分别在两台机器上都解决了这个问题。
 楼主| 发表于 2003-8-12 16:09:00 | 显示全部楼层
斑竹  不行啊


[root@localhost scr]# cat lip8
#!/bin/bash
while true
do
a=`ifconfig|grep "inet addr:"|awk -F: '{print $2}'|tail -n 1`
if [ $a = "addr:127.0.0.1" ];then echo "network is down!";else
echo $a;fi
sleep 3;done
[root@localhost scr]# ./lip8
./lip8: line 5: [: too many arguments
220.173.151.151 P-t-P
./lip8: line 5: [: too many arguments
220.173.151.151 P-t-P
./lip8: line 5: [: too many arguments
220.173.151.151 P-t-P
./lip8: line 5: [: too many arguments
220.173.151.151 P-t-P
./lip8: line 5: [: too many arguments
220.173.151.151 P-t-P
./lip8: line 5: [: too many arguments
220.173.151.151 P-t-P

[root@localhost scr]#

那我要在每一次输出的前面都加上一个序号 怎么作?

我是在terminal生成的  我去X试试+

行啦 果然是这样  大哥真利害啊  发现了一个bug.

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

本版积分规则

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