免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1231 | 回复: 1

请各位帮忙看一下。 [复制链接]

论坛徽章:
0
发表于 2003-03-22 18:09 |显示全部楼层
以下的脚本是想实现拨号断线后通知管理员,请各位帮忙完善一下,最好能以一个进程运行
#! /bin/sh
ip_first=`ifconfig ppp0 |grep inet |awk '{print $2}'`
echo "$ip_first">ip_first.tmp
echo `sed  's/^addr://g' ip_first.tmp` >ip_first.$$
mv ip_first.$$ ip_first.tmp
while read i; do
        ip_old=`echo $i | awk '{print $1}'`
        ping -w3 $ip_old
done < ip_first.tmp
LOCK_FILE=/tmp/ip_first.tmp
until [ ! -f $LOCK_FILE ]; do
        ip_new=`ifconfig ppp0 |grep inet |awk '{print $2}'`
        if [ -z $ip_new ]; then
               adsl-start
        else
              echo "$ip_new">ip_new.tmp
              echo `sed  's/^addr://g' ip_new.tmp` >ip_new.$$
             mv ip_new.$$ ip_new.tmp
        fi
        while read i; do
                ip_new=`echo $i | awk '{print $1}'`
                ping -w3 $ip_new
        done < ip_new.tmp
        echo $ip_old $ip_new
        if [ "$ip_old" != "$ip_new" ]; then
                echo $ip_new > ip_first.tmp
                ip_old=$ip_new
                mail  abc@abc.com <ip_first.tmp
        else
                sleep 3
        fi
done
exit

论坛徽章:
0
发表于 2003-03-23 08:31 |显示全部楼层

请各位帮忙看一下。

...

怎么会这么复杂? 应该是查一下有没有IP就好了,如果返回的为空串就表示断线了。我的系统跟你不太一样,但是这不是问题的关键,取得IP即

IP=`ifconfig tun0 | awk '/netmask/ {print $2}'`

在断线后,这样取不到字符的,所以判断应该是很简单的。

if [ -z "$IP" ]; then
   echo "ADSL link is down."
fi

然后这个脚本放到 crontab 中去就行了.

(如果是断线后,你的 ipconfig 还能取到IP,则可能你的 ppp 没有配置好,在我的系统上是在 ppp.linkup, ppp.linkdown 处理)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP