免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2560 | 回复: 5
打印 上一主题 下一主题

syslog告警处理程序出错,高手帮帮忙 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-26 16:39 |只看该作者 |倒序浏览
告警文件如下
cat /var/adm/messages
Jul 19 10:51:38 10.216.48.1 544: *Nov 14 09:43:11: %LINK-3-UPDOWN: Interface FastEthernet0/9, changed state to up
Jul 19 11:29:16 10.216.48.1 546: *Nov 14 10:20:48: %LINK-3-UPDOWN: Interface FastEthernet0/9, changed state to down
Jul 19 11:30:38 10.216.48.1 548: *Nov 14 10:22:11: %LINK-3-UPDOWN: Interface FastEthernet0/9, changed state to up
其中Ip地址和节点名存在node文件中
cat node
10.216.48.1        node1
10.216.48.2        node3

告警处理程序不断检测告警文件变化,并根据设备端口down时作相应处理。希望输出结果为
node1 port changed state to down

程序为:
cat test.sh

tail -f /var/adm/messages | while read line
do
echo $line |grep "changed state to down"
if [ $? -eq 0 ]; then
IP=`echo $line |grep "changed state to down" | awk '{print $2}'`
Node=`grep $IP node | awk '{print $2}'`
echo "$Node port changed state to down"
fi
done
结果是没有任何输出,这是为什么?
谢谢!

论坛徽章:
0
2 [报告]
发表于 2006-07-26 16:52 |只看该作者
不好意思,程序应该是这样
cat test.sh

tail -f /var/adm/messages | while read line
do
echo $line |grep "changed state to down"
if [ $? -eq 0 ]; then
IP=`echo $line |grep "changed state to down" | awk '{print $4}'`
Node=`grep $IP node | awk '{print $2}'`
echo "$Node port changed state to down"
fi
done
但是还是没输出,为什么?

论坛徽章:
0
3 [报告]
发表于 2006-07-26 16:54 |只看该作者
我觉得是在 $? 这个地方用的有问题,
这个 $? 是指程序返回的数值阿?
为什么要用这个呢?

论坛徽章:
0
4 [报告]
发表于 2006-07-26 17:02 |只看该作者
问题是,好像这样也没有输出预期中的$line

tail -f /var/adm/messages | while read line
do
echo $line |grep "changed state to down" ;
if [ $? -eq 0 ]; then
echo $line;
fi
done

论坛徽章:
0
5 [报告]
发表于 2006-07-26 17:22 |只看该作者
请问这句 echo $line |grep "changed state to down" ;
有没有输出预期结果呢?
感觉没什么问题呀!

[ 本帖最后由 zxr1018 于 2006-7-26 17:26 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2006-07-26 17:32 |只看该作者
程序改为
tail -f /var/adm/messages | while read line
do
echo $line |grep "changed state to down" ;
if [ $? -eq 0 ]; then
echo "alarm!!";
fi
done

则有告警不断输出如下:
Jul 19 11:29:16 10.216.48.1 546: *Nov 14 10:20:48: %LINK-3-UPDOWN: Interface FastEthernet0/9, changed state to down
alarm!!
但是tail -f /var/adm/messages | while read line
do
echo $line |grep "changed state to down" ;
if [ $? -eq 0 ]; then
echo $line;
fi
done
则没有任何显示
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP