加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 运营中心 > 交互 > 正文

Linux主机网络流量监控ifstat

发布时间:2016-10-30 05:21:04 所属栏目:交互 来源:站长网
导读:本监测方案是用ifstat。安装方法参考: http://man.linuxde.net/ifstat 1、下载 http://gael.roualland.free.fr/ifstat/ (官网) wget http://gael.roualland.free.fr/ifstat/ifstat-1.1.tar.gz 来自: http://man.linuxde.net/ifstat 也可以通过浏览器下载
本监测方案是用ifstat。安装方法参考:
http://man.linuxde.net/ifstat 
1、下载
http://gael.roualland.free.fr/ifstat/ (官网) wget http://gael.roualland.free.fr/ifstat/ifstat-1.1.tar.gz
来自: http://man.linuxde.net/ifstat
也可以通过浏览器下载,然后用secureCRT上传;
2、安装
tar -xzvf ifstat-1.1.tar.gz,configure、make、make install
3、编写脚本

  1. [root@localhost tools]# cat nic.sh
  2. #!/bin/bash
  3. start(){
  4. /opt/tools/ifstat_install/bin/ifstat -i eth1 -t >/opt/tools/nic.log &
  5. while [ 1 -eq 1 ]
  6. do
  7. date +%F %T >>/opt/tools/nic.log
  8. sleep 86400
  9. done
  10. }

  11. stop(){
  12. # if stay here,kill ifstat,sleep not execute.
  13. #echo 'kill nic.sh:'
  14. #ps -ef |grep nic |grep -v grep |awk '{print $2}' |while read pid1
  15. #do
  16. #kill -9 $pid1
  17. #echo $pid1
  18. #done

  19. echo 'kill ifstat:'
  20. ps -ef |grep ifstat |grep -v grep |awk '{print $2}' |while read pid2
  21. do
  22. kill -9 $pid2
  23. echo $pid2
  24. done

  25. echo 'kill sleep:'
  26. ps -ef |grep sleep |grep -v grep |awk '{print $2}' |while read pid3
  27. do
  28. kill -9 $pid3
  29. echo $pid3
  30. done


  31. echo 'kill nic.sh:'
  32. ps -ef |grep nic |grep -v grep |awk '{print $2}' |while read pid1
  33. do
  34. kill -9 $pid1
  35. echo $pid1
  36. done
  37. }
  38. case $1 in
  39. start)
  40. start
  41. ;;
  42. stop)
  43. stop
  44. ;;
  45. *)
  46. printf 'please input start|stop!n'
  47. exit 1
  48. ;;
  49. esac

  50. #select process:
  51. #ps -ef |awk '/nic/||/ifstat/||/sleep/{print}'
  52. [root@localhost tools]#./nic.sh start &
执行了三次,查看进程:

  1. [mcbadm@loophole-scan ~]$ ps -ef |awk '/nic/||/ifstat/||/sleep/{print}'
  2. mcbadm 13472 12803 0 15:08 pts/1 00:00:00 /bin/bash ./nic.sh start
  3. mcbadm 13473 13472 0 15:08 pts/1 00:00:00 /opt/proxy_security/ifstat_install/bin/ifstat -i eth0 -t
  4. mcbadm 13475 13472 0 15:08 pts/1 00:00:00 sleep 8640
  5. mcbadm 13476 12803 0 15:08 pts/1 00:00:00 /bin/bash ./nic.sh start
  6. mcbadm 13477 13476 0 15:08 pts/1 00:00:00 /opt/proxy_security/ifstat_install/bin/ifstat -i eth0 -t
  7. mcbadm 13479 13476 0 15:08 pts/1 00:00:00 sleep 8640
  8. mcbadm 13480 12803 0 15:08 pts/1 00:00:00 /bin/bash ./nic.sh start
  9. mcbadm 13481 13480 0 15:08 pts/1 00:00:00 /opt/proxy_security/ifstat_install/bin/ifstat -i eth0 -t
  10. mcbadm 13483 13480 0 15:08 pts/1 00:00:00 sleep 8640
  11. mcbadm 13485 12803 0 15:08 pts/1 00:00:00 awk /nic/||/ifstat/||/sleep/{print}
  12. [mcbadm@loophole-scan ~]$
不知道为啥,需要执行两次stop,才能关闭所有进程,不然会剩下几个sleep进程,这些sleep的父进程id与ifstat的一样。

#一天是86400秒,因为默认的ifstat -t 只能显示时、分、秒,不能显示日期,因为我想看到具体的时间所以就这么弄了。
然后定期可以去分析nic.log文件,查看该网卡的流量情况。
关于kill也可以写while的方式:#ps -ef |grep nic |grep -v grep |awk '{print $2}' |xargs -i kill -9 {}
有一个很怪的现象:当我把kill nic的语句写在前面的时候,执行stop就只能执行kill nic的语句块,后面两个kill ifstat和kill sleep就无法执行,如果删除了kill nic,后面两个就可以正常执行,通过打印pid发现,kill nic放前面的话,输出的有两个无效的pid,最后选择把kill nic放到了kill ifstat和kill sleep后面就可以。

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读