linux查看本机到某特定ip的流量--思路一例
来源:互联网 发布:2016年9月非农数据时间 编辑:程序博客网 时间:2024/05/29 12:17
在我之前的文章中分享过“实时”查看Linux某些网卡流量的小脚本查看Linux某些网卡流量的小脚本,今天再分享一个查看本机到具体某个ip间的流量的思路。我有这个需求是因为:我们的存储是Dell存储设备通过nfs协议供多台业务机挂载使用,而我有必要了解每台机器和Dell存储之间的流量。
其实,如果仅仅是要看这个流量,iftop这个软件就很好,通过其自身的选项就能满足了,不需要再做什么额外的工作。
我的情况是:由于nfs客户机众多,而且虽是挂载一台存储设备但挂载点ip却不一样,并且我想把这个作为一个监控项放到zabbix里,所以我就需要用shell对iftop做进一步的“封装”,以便能够“通用”些且更好的和zabbix结合。
注意:iftop需要root权限,而zabbix-agent一般是以zabbix用户运行且通过zabbix-server调用agent端的自定义脚本时是没有终端(tty)的,这里就需要修改sudo的配置文件了,允许zabbix用户远程执行命令的过程中执行sudo操作。
脚本内容如下
#!/bin/sh#在zabbix上监控各机器与nfs server之间的流量#by ljk 20160803net='192.168.1.*' #内网网段nfs_subnet='192.168.1.2[0-9]{2}' #nfs所在ip的正则#获取nfs server的真实ip,前提是每台server无论几个挂载点,都只从一个ip挂载nfs_ip=$(df -h|egrep "$nfs_subnet:"|awk -F : '{print $1}'|sort|uniq)cd /etc/sysconfig/network-scriptsfor dev in $(ls ifcfg-*|awk -F - '{print $2}');do ip addr show $dev|grep '192.168.1.*' >/dev/null #判断哪个网卡有内网网段ip if [ $? -eq 0 ];then using_dev=$dev #拥有内网ip的网卡名赋予变量using_dev break fidoneif [ "$1" == "request" ];then result=$(sudo iftop -i $using_dev -n -t -s 10 2>/dev/null | egrep -B 1 $nfs_ip|awk '$(NF-4)=="=>" {print $(NF-1)}')elif [ "$1" == "response" ];then result=$(sudo iftop -i $using_dev -n -t -s 10 2>/dev/null | egrep -B 1 $nfs_ip|awk '$(NF-4)=="<=" {print $(NF-1)}')fi#iftop出来的结果为(6.60Mb 208Kb 320b等),将其结果整合进zabbix时要去掉这些单位并对数值做转换(zabbix里我统一用b做单位,只给zabbix传数值)if [ -z "$result" ];then echo 0else num=$(echo $result|tr -d "a-zA-Z") unit=`echo ${result: -2:1}` case $unit in [kK]) echo "$num*1024"|bc;; [mM]) echo "$num*1024*1024"|bc;; [gG]) echo "$num*1024*1024*1024"|bc;; *) echo "$num" esacfi
0 0
- linux查看本机到某特定ip的流量--思路一例
- Linux路由网关下查看客户端IP的实际流量
- linux查看本机外网ip
- 查看网卡流量的小脚本
- linux下查看本机IP的两种方法
- Window和Linux下查看本机IP的方法
- linux查看本机IP、gateway、dns
- linux查看本机IP、gateway、dns
- linux 查看本机IP, 网关,DNS
- linux获取/查看本机出口ip
- Linux查看本机ip 网管 DNS
- Linux 查看本机IP地址
- linux查看本机IP、gateway、dns
- linux查看本机IP、gateway、dns
- Linux 下查看本机 IP 地址
- linux 查看访问本机ip次数
- linux获取/查看本机出口ip
- linux下查看本机外网ip
- 解决ListView嵌套ListView或者ScrollView嵌套ListView出现的问题
- iOS的Cookie存取看我绝对够!!
- 通过ROS的Node(节点)调用bhand_controller服务实现barrett_hand基本动作控制
- lua时间函数操作和对比代码,os.date() os.time()
- 常见几种排序算法的C++描述
- linux查看本机到某特定ip的流量--思路一例
- php递归函数中使用return的注意事项
- Servlet生命周期与工作原理
- 如何去管理项目中的Activity
- Exception:Duplicate id 0x7f0b00d6, tag null, or parent id 0xffffffff with another fragment
- 解析Spring源码(5)--this.documentLoader.loadDocument
- linux内核 路由fib表之创建
- iOS tableView下拉图片变大
- 适配计模式