zoukankan      html  css  js  c++  java
  • 基于dstat监控网卡流量,服务器状态简单脚本

    前几天领导给了一台服务让我每天监控以下服务器得流量情况,开始几天每天上去用ifstat命令截图。后来了解到dstat命令
    dstat着个命令用法灵活,功能强大,先来简单得介绍一下

    dstat介绍


    • dstat结合了vmstat,iostat,ifstat,netstat以及更多监控工具的信息,跟ifstat一样,实时显示监控状态
    • 基于python编写,方便扩展各种定制功能
    • 分组统计设备信息
    • 可以定制时间和输出间隔,比如dstat -nf 2 5 表示输出网络设备 2秒一次 一共输出5次
    • 输出信息单位按最大整数计算,用颜色显示不同单位
    • 可以输出csv文件。dstat --output /tmp/filename.csv 2 5 这条命令是将dstat输出到/tmp/文件名.csv这个文件中 2秒一次 出书5次
      这里要注意一下:dstat时间控制参数一定要在文件输出后面,我就是因为这个地方改了好多次,先把时间参数加到前面了,导致输出文件不成功

    dstat安装


    yum -y install dstat

    dstat参数介绍


    dstat命令什么参数也不加的话默认输出:1275358-20171222140059381-268019064.png

    从左往右依次显示的是:cpu状态,磁盘读写状态,网络状态统计,分页状态统计,系统状态统计

    man dstat可以查看dstat的参数详情

    • -c:显示cpu当前状态
    • -C:加cpu号分别显示cpu
    • -l:显示负载统计量
    • -m:显示内存状态包括used,buffer,cache,free
    • -n:显示网卡总状态
    • -nf:分页显示网卡装填
    • -r:显示i/o统计
    • -s:显示交换分区的状态
    • -t:显示时间
    • -fs:显示文件系统统计数据,包括文件总数和innodes值
    • -nocolor:输出不现实颜色
    • -socket:统计网络数据
    • -tcp:显示tcp统计
    • -udp:显示udp统计
      还有很多功能没有列出来,有需要的看man dstat 详情
      贴出我今天写的一个用来监控每天固定时间的网络状态并生成csv文件发送到我自己的邮箱的小脚本:

      #!/bin/bash
      tname=`date +%Y-%-m-%-d`
      echo  ${tname}
      dstat -tnf   --output /tmp/eths_${tname}.csv 1 40 #显示时间的分页网卡状态,因为我的服务器有5块网卡,自动生成一个eths_(每天日期).csv的文件
      echo "今天的备份" | mail -a /tmp/eths_${tname}.csv -s "今天的备份文件" 821970945@qq.com #发送文件到我得邮箱

      最后把这个脚本写进周期计划任务就行了,每天十点发送邮件给我:
      crontab -e
      0 10 * * * /usr/src/脚本名字.sh >/dev/null 2>&1
      就酱!

  • 相关阅读:
    Spring异步调用注解@Async的使用
    maven 打包前 Junit 测试
    windows 访问局域网共享文件
    IBM MQ 集成CXF 发送JMS 消息
    VO、DTO、DO、PO的概念、区别和用处
    myeclipse创建的项目发布不了文档
    js获取jsp上下文地址
    Maven编译时,出现找不到符号
    Cause: java.lang.ClassCastException: java.lang.String cannot be cast to org.apache.ibatis.mapping.MappedStatement
    使用IDEA从github中下载fastdfs-client-java
  • 原文地址:https://www.cnblogs.com/lixuebin/p/10808485.html
Copyright © 2011-2022 走看看