LinuxSir.cn,穿越时空的Linuxsir!

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

[求助]如何每15分钟ping某ip,若不通就重启网卡?

[复制链接]
发表于 2008-1-11 15:52:25 | 显示全部楼层 |阅读模式
就是2个问题
1 如何判断ping的结果
2 如何每15分钟运行。
发表于 2008-1-11 18:21:37 | 显示全部楼层
1, ping执行后查看$?是否为0
2, 我想最简单的方法可以用sleep
不对的地方还望指正
回复 支持 反对

使用道具 举报

发表于 2008-1-11 18:52:00 | 显示全部楼层
用crontab就可以定义成每15分钟执行一次程序,这样做,不怕进程无故退出了。
回复 支持 反对

使用道具 举报

发表于 2008-1-11 21:44:24 | 显示全部楼层
crontab
ping
if $? !=0

/etc/init.d/net.xxx restart
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-12 14:44:36 | 显示全部楼层
不知能否写个完整的例子,我shell语法不太熟.
之所以不敢发在shell区,也是考虑到想要个现成的.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-12 23:00:39 | 显示全部楼层

  1. #! /bin/sh
  2. ping -w 5 -I eth1 -n xx.xx.xx.xx > NUL
  3. if [ $? -ne 0 ]
  4. then
  5.    my_ip=`/sbin/ifconfig eth1 | awk '/inet addr/{print $2}' | cut -d: -f2`
  6.    date >> /var/log/eth1down.log
  7.    /etc/init.d/net.eth1 restart
  8.    new_ip=`/sbin/ifconfig eth1 | awk '/inet addr/{print $2}' | cut -d: -f2`
  9.    echo $my_ip - $new_ip >> /var/log/eth1down.log
  10.    echo >> /var/log/eth1down.log
  11. fi
  12. touch /var/log/eth1down.log
复制代码

自己解决. 谢谢.

也可以 if ping
           else /etc/init.d/net.xxx restart
           fi
对吧?

有没有当/var/log/eth1down.log超过128k后清空之的方法?
回复 支持 反对

使用道具 举报

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

本版积分规则

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