`
junun
  • 浏览: 1802 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

使用nicstat查看网卡状态

阅读更多

我以前用脚本实现对实时网卡流量统

#!/bin/bash
NAME=nic_flow
PIDFILE=/var/tmp/$NAME.pid
LOGFILE=/var/tmp/$NAME.log

function start(){
    if [ -f "$PIDFILE" ]; then
        echo $PIDFILE
        exit 2
    fi
    for (( ; ; ));do
        eth=$1
        [ -z "${eth:-}" ] && eth=eth0
        time_range=$2
        [ -z "${time_range:-}" ] && time_range=1      
        ifconfig  | awk '{print $1}' | grep "eth" > /dev/null 
        [ $? -gt 0 ] && echo "wrong NIC device" && exit 10
        RX_1=$(cat /proc/net/dev | grep "$eth" | awk -F'[ |:]+'  '{print $4}')
        TX_1=$(cat /proc/net/dev | grep "$eth" | awk '{print $9}')
        sleep $time_range
        RX_2=$(cat /proc/net/dev | grep "$eth" | awk -F'[ |:]+'  '{print $4}')
        TX_2=$(cat /proc/net/dev | grep "$eth" | awk '{print $9}')
        clear
        echo  -e "`date +%k:%M:%S`      RX        TX" | tee -a $LOGFILE 
        RX=$((${RX_2}-${RX_1}))
        TX=$((${TX_2}-${TX_1}))
        if [[ $RX -lt 1024 ]];then
            RX="${RX}B/s"
        elif [[ $RX -gt 1048576 ]];then
            RX=$(echo $RX | awk '{print $1/1048576 "MB/s"}')
        else
            RX=$(echo $RX | awk '{print $1/1024 "KB/s"}')
        fi
        if [[ $TX -lt 1024 ]];then
            TX="${TX}B/s"

        elif [[ $TX -gt 1048576 ]];then
            TX=$(echo $TX | awk '{print $1/1048576 "MB/s"}')
        else
            TX=$(echo $TX | awk '{print $1/1024 "KB/s"}')
        fi 
        echo -e " $eth       $RX        $TX " | tee -a $LOGFILE
    done& 
    echo $! > $PIDFILE
} 
function stop(){
    [ -f $PIDFILE ] && kill `cat $PIDFILE` && rm -rf $PIDFILE
}

case "$1" in
  start)
    start $2 $3
    ;;
  stop)
    stop
    ;;
  *)
    echo $"Usage:$0  {start|stop,NIC device(eth*), time_range(s)}"
    exit 2
esac

 今天发现一个更好用的工具nicstat。

nicstat可以提供更加全面的网卡信息。
          显示TCP流量统计
          显示UDP流量统计
          报告进出网卡的字节数
          报告进出网卡的数据数
          报告网卡利用率
          报告NIC饱和度和其他信息

 

 

 

完整的安装过程(基于centos 6.3 x86_64,如果是ubuntu或者其linux可以参照官网文档)? 

 安装make环境
yum install gcc gcc-c++ make automake autoconf -y

由于nicstat依赖32 bit glibc package,所以
yum install libgcc.i686 glibc.i686 glibc-devel.i686  -y

下载文件并安装

cd /usr/local/src
wget http://nchc.dl.sourceforge.net/project/nicstat/nicstat-1.92.tar.gz
tar xf nicstat-1.92.tar.gz
cd nicstat-1.92
cp Makefile.Linux Makefile
make

 

 

安装错误及解决方法

[root@andy nicstat-1.92]# make
gcc -O3 -m32    nicstat.c   -o nicstat
In file included from /usr/include/features.h:385,
                 from /usr/include/stdio.h:28,
                 from nicstat.c:33:
/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory
nicstat.c:99:1: warning: "DUPLEX_UNKNOWN" redefined
In file included from nicstat.c:84:
/usr/include/linux/ethtool.h:689:1: warning: this is the location of the previous definition
make: *** [nicstat] Error 1
======> yum install glibc-devel.i686

[root@localhost nicstat-1.92]# make
gcc -O3 -m32    nicstat.c   -o nicstat
nicstat.c:99:1: warning: "DUPLEX_UNKNOWN" redefined
In file included from nicstat.c:84:
/usr/include/linux/ethtool.h:519:1: warning: this is the location of the previous definition
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.4.7/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.4.7/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
make: *** [nicstat] Error 1

=======>yum install libgcc.i686

 

安装脚本:

#/bin/bash
#author junun
#blog http://angus717.blog.51cto.com
#

SOFT_DIR=/usr/local/src

function nicstat_ins {
    echo "===========will inst nicstat"

    ping -c 1 -t 1 www.baidu.com 
    if [[ $? -gt 0 ]];then 
        echo "nameserver 8.8.8.8\rnameserver 202.96.128.68" >>  /etc/resolv.conf 
    fi 

    yum install gcc gcc-c++ make automake autoconf -y 

    yum install libgcc.i686 glibc.i686 glibc-devel.i686  -y

    cd $SOFT_DIR

    wget http://nchc.dl.sourceforge.net/project/nicstat/nicstat-1.92.tar.gz

    tar xf nicstat-1.92.tar.gz

    cd nicstat-1.92

    cp Makefile.Linux Makefile

    make
    [ $? -eq 0 ] || error  "\033[31m there are something to make \033[0m"

    echo "alias nicstat='bash $SOFT_DIR/nicstat-1.92/nicstat.sh'" > /etc/profile.d/nicstat.sh
}

nicstat_ins

 具体使用可以看http://angus717.blog.51cto.com/1593644/1208937,以后可能不在维护51的博客了。

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Linux网络监控工具nicstat-1.95.tar.gz

    nicstat的使用方法相对简单,通过在命令行输入`nicstat`即可开始监控网络状态。用户可以根据需要添加参数,例如 `-i` 参数指定要监控的网络接口,或者 `-t` 参数显示时间间隔,以便连续监控网络流量变化。此外,`...

    Linux网络监控工具nicstat-1.92.tar.gz

    4. **实时监控**:除了单次查询,nicstat还可以进行周期性的数据收集,持续监控网络状态变化,这对于诊断瞬时网络问题非常有用。 5. **进程级统计**:nicstat的一个独特功能是它可以关联网络活动与特定的进程,这样...

    Linux网络监控工具(nicstat-1.92.tar.gz)

    4. **非root用户运行**:nicstat允许非root用户在没有超级用户权限的情况下查看本机网络接口的状态,提升了安全性。 5. **命令行界面**:nicstat是一个命令行工具,无需图形界面,适合远程管理和自动化脚本。 在...

    nicstat-1.92.tar.gz

    nicstat-1.92.tar.gz nicstat-1.92.tar.gz nicstat-1.92.tar.gz

    Linux网络监控工具(nicstat-1.95.tar.gz)

    3. **多接口支持**:nicstat能够同时监控多个网络接口,这对于多网卡的服务器尤其有用,可以分别查看每个接口的性能。 4. **命令行界面**:作为命令行工具,nicstat无需图形界面,可以在远程SSH连接中轻松使用,...

    Linux网络监控工具nicstat-src-1.92.tar.gz(源码)

    5. **高级用法**:还可以结合其他命令,如`watch nicstat`,实现动态查看网络状态,或者通过重定向输出到日志文件,用于后续分析。 总之,nicstat作为一款强大的网络监控工具,对于运维人员来说是必不可少的。通过...

    Linux网络监控工具nicstat-src-1.95.tar.gz(源码)

    4. **nicstat使用** - nicstat命令行参数允许用户指定不同的操作模式,例如持续监控网络状态,或者在特定时间间隔内收集数据。 - nicstat可以输出单个接口或所有接口的信息,包括接收和发送的字节数、数据包数、...

    nicstat-开源

    nicstat-1.95可能是nicstat的一个特定版本,这通常代表了软件在某个时间点的稳定状态,包含了开发者在该版本中实现的所有功能和修复的问题。用户可以通过下载这个版本来安装和使用nicstat,或者与旧版本进行对比,...

    Linux 流量监控工具

    Linux系统中流量监控是网络管理的一个重要环节,它可以帮助系统管理员或者网络管理员了解网络状况,及时发现网络问题...通过iftop的使用,可以有效地监控、分析和诊断网络状态,从而实现对网络性能和安全性的有效管理。

    流量监控工具

    4. **非root权限运行**:与其他一些网络监控工具不同,`nicstat`可以在普通用户权限下运行,无需管理员权限,增加了使用的便捷性。 5. **命令行界面**:作为一款命令行工具,`nicstat`可以通过简单的参数配置来定制...

    常用系统调优工具1

    15. **netstat**:网络连接状态和统计信息查看工具,可以检查网络连接、路由表、接口统计等。 16. **tcprstat**:TCP连接状态统计工具,帮助分析TCP连接的建立、关闭、重传等行为。 这些工具都是Linux系统调优的...

    toolbox:CoreOS 工具箱容器

    要使用,请指示工具箱实用程序使用ragnarb/toolbox而不是默认的 Fedora 容器。 请参阅此容器的条目。 包含的工具 该工具箱面向性能指标收集和调试。 一些工具包括通用工具,如 htop、dstat、atop 和 sar; 更具体...

    MYSQL性能调优工具介绍

    二 性能分析工具介绍(mytop,innotop,orzdba,tcpdump,pt-query-digest,tbdba-slow-picker.pl,iotop,io-profile,nicstat,mpstat,iostat,vmstat,tcprstat,dstat,oprofile,vmtouch) 三 主从复制延时解决(relay-fetch...

    Linux常用性能调优工具索引

    大部分在我日常工具箱里或者在实践的案例里面使用过,都有很高的价值,这里方便大家索引下:  nicstat:参见这里  oprofile:参见这里  perf:参见这里  systemtap:参见这里  iotop:参见这里  blktrace:参见这里 ...

Global site tag (gtag.js) - Google Analytics