作者:邓聪聪

#!/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. js实现table用鼠标改变td的宽度,固定table宽度和高度超过显示点

    <!DOCTYPE HTML> <html> <head> <meta charset="gbk"> <title>ta ...

  2. PostMan打不开怎么解决

    如题: 解决办法: 1.找到以下两个路径直接删除文件,注安装路径不同有可能不同 C:\Users\Administrator\AppData\Roaming\Postman C:\Users\Admi ...

  3. Hadoop完全分布式安装

    一.软件版本 Hadoop版本号:hadoop-2.6.0.tar: VMWare版本号:VMware-workstation-full-11.0.0-2305329 Ubuntu版本号:ubuntu ...

  4. Java技能

    1.思维导图 Java知识思维导图 2 3.Java理解 深入理解Java:注解(Annotation)自定义注解入门 4.JAVA数据类型 基本数据类型 布尔类型:boolean 数值类型: 定点类 ...

  5. Golang入门教程(四)变量声明

    Go 语言变量名由字母.数字.下划线组成,其中首个字母不能为数字. 一.Go的语言结构 1.Go的语言基础部分由这几个部分组成 包声明 引入包 函数 变量 语句&表达式 注释 比如下面这个简单 ...

  6. 从零开始搭建高性能高可用Tomcat服务器

    目标: Tomcat+Nginx+Memcached Ubuntu 16.04 64位测试通过 动静分类.负载均衡.集群.Javolution序列化.高性能.高可用 配置环境(目前均为最新稳定版): ...

  7. centos6.8离线安装nginx

    rpm可从官网下载镜像解压获得,推荐从http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/下载 安装gcc rpm -ivh mpfr-2.4. ...

  8. MyBatis简单使用和入门理解

    本文记录第一次使用Mybatis时碰到的一些错误和简单理解,采用的示例是Eclipse中的JAVA工程,采用XML文件定义数据库连接. 可以使用Java JDBC API直接操作数据库,但使用框架会更 ...

  9. wx预览图片

    wx.previewImage({ current: current, // 当前显示图片的http链接 urls: this.data.imgalist // 需要预览的图片http链接列表 }) ...

  10. setDefaultKeyMode设置Activity的五种按键模式

    setDefaultKeyMode (int mode) 用来设置一个Activity的默认的按键模式, mode一共有五种 DEFAULT_KEYS_DISABLE DEFAULT_KEYS_DIA ...