当前位置: 首页 > 编程笔记 >

Python脚本实现网卡流量监控

纪佐
2023-03-14
本文向大家介绍Python脚本实现网卡流量监控,包括了Python脚本实现网卡流量监控的使用技巧和注意事项,需要的朋友参考一下
#/usr/bin/env/python
#coding=utf-8

import sys,re,time,os
maxdata = 50000 #单位KB
memfilename = '/tmp/newnetcardtransdata.txt'
netcard = '/proc/net/dev'

def checkfile(filename):
  if os.path.isfile(filename):
    pass
  else:
    f = open(filename, 'w')
    f.write('0')
    f.close()

def get_net_data():
  nc = netcard or '/proc/net/dev'
  fd = open(nc, "r")
  netcardstatus = False
  for line in fd.readlines():
    if line.find("eth0") > 0:
      netcardstatus = True
      field = line.split()
      recv = field[0].split(":")[1]
      recv = recv or field[1]
      send = field[8]
  if not netcardstatus:
    fd.close()
    print 'Please setup your netcard'
    sys.exit()
  fd.close()
  return (float(recv), float(send))

def monfirst(filename):
  nowtime = time.strftime('%m-%d %H:%M',time.localtime(time.time()))
  sec = time.localtime().tm_sec
  if nowtime == '01-01 00:00':
    if sec < 10:
      f = open(filename, 'w')
      f.write('0')
      f.close()      

def net_loop():
  (recv, send) = get_net_data()
  checkfile(memfilename)
  monfirst(memfilename)
  lasttransdaraopen = open(memfilename,'r')
  lasttransdata = lasttransdaraopen.readline()
  lasttransdaraopen.close()
  totaltrans = int(lasttransdata) or 0
  while True:
    time.sleep(3)
    (new_recv, new_send) = get_net_data()
    recvdata = (new_recv - recv) / 1024
    senddata = (new_send - send) / 1024
    totaltrans += int(recvdata)
    totaltrans += int(senddata)
    memw = open(memfilename,'w')
    memw.write(str(totaltrans))
    memw.close()
    if totaltrans >= maxdata:
      os.system('init 0')

if __name__ == "__main__":
  net_loop()

用ROOT权限运行,maxdata为最大流量限制 超过这个限制,系统自动关机 当然,你可以改os.system('init 0')为你想要的命令 主要是现在VPS都限制流量,才搞了这个小脚本

 类似资料:
  • 本文向大家介绍Shell脚本查看网卡实时流量,包括了Shell脚本查看网卡实时流量的使用技巧和注意事项,需要的朋友参考一下 调用方式: 可以实时显示网卡流量大小:

  • 本文向大家介绍shell脚本实现监控shell脚本的执行流程及变量的值,包括了shell脚本实现监控shell脚本的执行流程及变量的值的使用技巧和注意事项,需要的朋友参考一下 很多时候,我们都会写shell程序来完成一些不用重复造轮子的时刻,但是,又因为shell语句中也会有函数,也会有变量,在运行后到底执行了哪些相关的操作,就需要对具体执行过程中的变量等可变的因素的监控,那么我们下面就写个小小的

  • 问题内容: 我可以在Java监视程序上创建网络流量吗?该程序必须控制从计算机程序(包括OS模块)到网络驱动程序再返回的所有网络流量。如果是,如何? 注意: 我不仅要监视流量,还要对其进行控制。我想在Windows NT上实现这样的系统。仅靠Java无法实现它。如何在JNI的帮助下执行它? 也许是另一个变体。我不熟悉Windows服务,但仍然如此。我将在C 上编写一个程序并将其注册为Windows服

  • 本文向大家介绍Python 实现网课实时监控自动签到、打卡功能,包括了Python 实现网课实时监控自动签到、打卡功能的使用技巧和注意事项,需要的朋友参考一下 响应国家停课不停学的号召,学生们都开始了网上授课,但由于课程繁多,消息繁杂,经常错过课堂签到,针对这一难题,博客主作为Python爱好者,完全使用Python语言写了本篇博客,希望能够帮助小伙伴们完成上课签到问题(注:只是帮你签到,而不是叫

  • 本文向大家介绍shell脚本实现磁盘监控系统,包括了shell脚本实现磁盘监控系统的使用技巧和注意事项,需要的朋友参考一下 利用shell脚本实现每隔60秒磁盘内存数据监控 效果如图: 以上就是shell脚本实现磁盘监控系统的详细内容,更多关于shell 磁盘监控的资料请关注呐喊教程其它相关文章!

  • 本文向大家介绍Python脚本实现虾米网签到功能,包括了Python脚本实现虾米网签到功能的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python脚本实现虾米网签到功能的方法。分享给大家供大家参考,具体如下: 概述 这个脚本完成了自动登录虾米网、签到的功能。 大致要用到urllib、urllib2、cookielib这几个模块。其实就是用python实现向指定的url去post数据。