作者:邓聪聪

#!/bin/sh
Date=$(date +%F_%T)
iplist=`cat ip.txt |awk '{print $1}'`
snmp="hjsz-snmp"
#Name=/root/test/name.txt
Descr=/root/test/descr.txt
#Alias=/root/test/Alias.txt
Status_befor=/root/test/Tmp_status.txt
Status_now=/root/test/Status_now.txt
Tmp_chg_id=/root/test/tmp_chg.txt while true
do
for ip in $iplist
do
{
#首次获取接口状态
snmpwalk -v 2c -c $snmp $ip ifOperStatus >$Status_befor.$ip
sleep
while true
do #再次获取接口状态
snmpwalk -v 2c -c $snmp $ip ifOperStatus >$Status_now.$ip
cat $Status_now.$ip $Status_befor.$ip | sort -nr | uniq -c | grep "1 IF-MIB" > $Tmp_chg_id.$ip
if [ $? -eq ];then
for i in `cat $Tmp_chg_id.$ip |awk -F'.' '{print $2}' | awk '{print $1}' | sort -nr | uniq`
do
#获取当前设备OID值的接口
snmpwalk -v 2c -c $snmp $ip ifDesc >$Descr
#获取初始的接口状态
now_stat=`cat $Status_now.$ip |grep "ifOperStatus.$i " | awk '{print $NF}'`
#获取当前的接口状态
now_stat=`cat $Status_now.$ip |grep "ifOperStatus.$i " | awk '{print $NF}' |awk -F '(' '{print $1}'`
#获取当前设备OID值的接口名称
sw_port=`cat $Descr | grep "ifDescr.$i " | awk '{print $NF}'`
#获取当前设备OID值的设备名称
sysname=`snmpwalk -v 2c -c $snmp $ip SNMPv2-MIB::sysName. |awk '{print $4}'`
#获取当前设备OID值的描述信息
sysalias=`snmpwalk -v 2c -c $snmp $ip ifAlias |grep "ifAlias.$i " | awk '{print $NF}'`
echo "$sysname|$sw_port|$now_stat|$sysalias"
done
fi
break
done
} &
wait
done
sleep
done

利用shell简单监控网络设备的接口状态发出告警的更多相关文章

  1. 03: shell简单监控脚本

    1.1 监控apache web server #! /bin/bash # apache netstat -anpt | grep 80 &> /dev/null if [ $? -e ...

  2. zabbix利用percona-toolkit工具监控Mysql主从同步状态

    一.下载percona-toolkit工具包 percona-toolkit是一组高级命令行工具的集合,可以查看当前服务的摘要信息,磁盘检测,分析慢查询日志,查找重复索引,实现表同步等等. [root ...

  3. 利用shell脚本监控目录内文件改动

    #! /bin/bash webroot="/home/www/" cp /dev/null rsync_file if [ ! -f   file.md5 ];then      ...

  4. shell简单监控脚本模板

    #!/bin/bash host=127.0.0.1user=adminpassword='xx'port=6032x=0check_proxy(){v=$(mysql -N -u$user -p$p ...

  5. 监控Linux服务器网站状态的SHELL脚本

    1,监控httpd状态码的shell脚本代码. #!/bin/sh #site: www.jquerycn.cn # website[0]=www.jquerycn.cn/chuzu/' #网站1 m ...

  6. 用 shell 脚本做 restful api 接口监控

    问题的提出 基于历史原因,公司有一个"三无"采集服务--无人员.无运维.无监控--有能力做的部门不想接.接了的部门没能力.于是就一直这样裸奔,直到前几天一个依赖于这个采集服务的大数 ...

  7. go 利用orm简单实现接口分布式锁

    在开发中有些敏感接口,例如用户余额提现接口,需要考虑在并发情况下接口是否会发生问题.如果用户将自己的多条提现请求同时发送到服务器,代码能否扛得住呢?一旦没做锁,那么就真的会给用户多次提现,给公司带来损 ...

  8. shell脚本监控网站状态

    shell脚本监控网站状态 #!/bin/sh date=`date +"%Y%m%d-%H%M"` title="status" contentFail=&q ...

  9. 利用shell监控cpu、磁盘、内存使用率

    利用shell监控cpu.磁盘.内存使用率,达到警报阈值发邮件进行通知 并配合任务计划,即可及时获取报警信息 #!/bin/bash ################################# ...

随机推荐

  1. Elasticsearch集群节点配置详解

    注意:如果是在局域网中运行elasticsearch集群也是很简单的,只要cluster.name设置一致,并且机器在同一网段下,启动的es会自动发现对方,组成集群. 2.elasticsearch- ...

  2. 前端下拉框选择和动态生成调用div

    进入到一个项目期中,一边做项目,一边学习其中用到的知识.这些知识都是零碎的,有数据库,有html,有js,还有django.趁周末时间,整理前面遇到过的前端相关的知识点. 下拉框选择 <html ...

  3. MySQL忘记root密码的解决办法

    # 1.停掉MySQL进程 [root@standby ~]# /etc/init.d/mysqld stop Shutting down MySQL... SUCCESS! [root@standb ...

  4. 开源框架.netCore DncZeus学习(四)项目升级

    今天发现开源代码从1.0.0.1升级到了1.0.1.0,主要去掉了id主键,升级办法打开DncZeus,右键Git Bash Here,输入以下命令 合并失败,因为上一节尝试修改了几个代码,解决办法 ...

  5. Devexpress Winform 使用MVVM

    MVVM在WPF里很早就有了,在Winform里Devexpress最近几个大版本才有的事,上一段代码. 现在对话框上添加三个控件simpleButton1,simpleButton2,textEdi ...

  6. 【九】虚拟机工具 02 - jstat命令使用

    java8jstat官方文档 jstat命令可以查看堆内存各部分的使用量,以及加载类的数量.命令的格式如下: jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数] 注意:使用的j ...

  7. mac怎么快速回到桌面 隐藏所有窗口

    当你同时按下Option+Command+h键,就能把所有已打开的程序窗口(不包括当前正在运行的应用程序窗口)最小化到Dock栏上.注意不是关闭哦,是最小化哦.如果需要把程序窗口恢复到屏幕上,直接点击 ...

  8. Mysql宽字节注入(转)

    尽管现在呼吁所有的程序都使用unicode编码,所有的网站都使用utf-8编码,来一个统一的国际规范.但仍然有很多,包括国内及国外(特别是非英语国家)的一些cms,仍然使用着自己国家的一套编码,比如g ...

  9. IDApython教程(四)

    前三部分已经验证了用IDAPython能够让工作变的更简单,这一部分让我们看看逆向工程师如何使用IDAPython的颜色和强大的脚本特性. 分析者经常需要面对越来越复杂的代码,而且有时候无法轻易看出动 ...

  10. luogu 1550 [Usaco2008 Oct]打井 最小生成树+小技巧

    此题似乎显然最小生成树,小技巧需要注意: 在每个点出井水,需要花费,实际上可以把井水视作所有井下统一的一点,需要走路径到达此点,新图上再最小生成树 将点化作边处理 还有题目写的数据范围一般不可信,开大 ...