最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Python脚本实现网卡流量监控

来源:动视网 责编:小采 时间:2020-11-27 14:31:42
文档

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
推荐度:
导读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


#/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都限制流量,才搞了这个小脚本

文档

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
推荐度:
标签: 流量 网卡 脚本
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top