作者:邓聪聪

#!/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. Linux sys_call_table变动检测

    catalogue . 引言 . 内核ko timer定时器,检测sys_call_table adress变动 . 通过/dev/kmem获取IDT adress . 比较原始的系统调用地址和当前内 ...

  2. Kafka技术内幕 读书笔记之(六) 存储层——日志的读写

    -Kafka是一个分布式的( distributed ).分区的( partitioned ).复制的( replicated )提交日志( commitlog )服务 . “分布式”是所有分布式系统 ...

  3. C#设计模式(3)——抽象工厂模式

    1.抽象工厂模式介绍 上一篇我们了解了工厂模式,知道工厂模式可以解决简单工厂的缺陷(简单工厂添加新产品时要修改工厂类,不符合开闭原则),但是简单工厂和工厂模式都是只生产一种产品(前边的简单工厂和工厂都 ...

  4. <HTML深入浅出> 读书笔记

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  5. 【转载】C# 泛型详解

    https://www.cnblogs.com/yueyue184/p/5032156.html

  6. C#利用Guid实现真随机数

    C#中的随机数可以利用Random类很简单地生成随机数,代码如下: Random rdmNum=new Random();//生成随机数对象 int ans=rdmNum.Next(a,b);//生成 ...

  7. vim学习之git for windows

    这是我在博客园的第二篇文章,今晚是在线的特殊日子,应小编的要求不想多讲,喝了点酒,感觉到压力和挑战性,抽了几根烟,现在有点飘飘欲仙的感觉.在长江大学11教的6楼,是长大在线的办公室,这个晚上总是不关灯 ...

  8. 基于时间的 SQL注入研究

    SQL注入攻击是业界一种非常流行的攻击方式,是由rfp在1998年<Phrack>杂志第54期上的“NT Web Technology Vulnerabilities”文章中首次提出的.时 ...

  9. Intelij IDEA 内置 sql gui

    IDEA 内置 自带 SQL GUI  最大意义 会自动识别 domain 对象与数据表的关系,也可以通过 Database 的数据表直接生成 domain 对象等等. 第一步 打开数据库视图 Vie ...

  10. PHP中的会话控制—session和cookie(实现数据传值功能)

    1.session  登录上一个页面以后,长时间没有操作,刷新页面以后需要重新登录. 特点:(1)session是存储在服务器:   (2)session每个人(登陆者)存一份: (3)session ...