Python指令碼實現網絡卡流量監控

2022-09-29 13:06:18 字數 2072 閱讀 5557

#/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, atyrctvsoj'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 'pl程式設計客棧ease setup your netcard'

sys.exit()

fd.close()

return (float(recv), float(sewww.cppcns.comnd))

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指令碼實現網絡卡流量監控

本文位址: /jiaoben/python/119770.html

測試網絡卡流量指令碼

下面是乙個測試網絡卡流量的指令碼,指令碼內容如下 bin bash function usage if lt 2 o gt 2 then usage fieth 1 time 2 old inbw cat proc net dev grep eth awk f old outbw cat proc ...

網絡卡流量監控指令碼

sar n dev 1 2 sar命令包含在sysstat工具包中,提供系統的眾多統計資料。命令後面1 2 意思是 每一秒鐘取1次值,取2次。dev顯示網路介面資訊 另外,n引數很有用,他有6個不同的開關 dev edev nfs nfsd sock all 其代表的含義如下 dev顯示網路介面資訊...

shell指令碼實現對網絡卡流量監控

突然想對linux的網絡卡流量進行監控,又不想使用cacti,覺得配置snmp很麻煩。現成的工具好像也沒啥太好用的。決定自己寫乙個指令碼。bin bash rx1 ifconfig 1 grep rx bytes awk awk f sleep 1 rxa rx1 1000 rx2 ifconfig...