python监控网卡流量并使用graphite绘图的示例
2023-06-13 09:15:25 时间
#!/usr/bin/envpython
importsys,time
fromsocketimportsocket
defread_interface(in_file):
withfile(in_file)asf:
returnf.readlines()[2:]
defset_interface(inter_msg):
dic={}
foriinxrange(len(inter_msg)):
dic[inter_msg[i].split(":")[0].strip()]={"in":inter_msg[i].split(":")[1].strip().split()[0],"out":inter_msg[i].split(":")[1].strip().split()[8]}
returndic
CARBON_SERVER="127.0.0.1"
CARBON_PORT=2003
delay=3
sock=socket()
try:
sock.connect((CARBON_SERVER,CARBON_PORT))
except:
print"Couldn"tconnectto%(server)sonport%(port)d,iscarbon-agent.pyrunning?"%{"server":CARBON_SERVER,"port":CARBON_PORT}
sys.exit(1)
whileTrue:
now=int(time.time())
lines=[]
int1=read_interface("/proc/net/dev")
inter_dic1=set_interface(int1)
time.sleep(1)
int2=read_interface("/proc/net/dev")
inter_dic2=set_interface(int2)
printint(inter_dic2[inter_dic2.keys()[1]]["in"]),int(inter_dic1[inter_dic1.keys()[1]]["in"])
foriinxrange(len(inter_dic1.keys())):
lines.append("interface.%s_in%s%d"%(inter_dic1.keys()[i],int(inter_dic2[inter_dic2.keys()[i]]["in"])-int(inter_dic1[inter_dic1.keys()[i]]["in"]),now))
lines.append("interface.%s_out%s%d"%(inter_dic1.keys()[i],int(inter_dic2[inter_dic2.keys()[i]]["out"])-int(inter_dic1[inter_dic1.keys()[i]]["out"]),now))
message="\n".join(lines)+"\n"
print"sendingmessage\n"
print"-"*80
printmessage
sock.sendall(message)
time.sleep(delay)
相关文章
- Python之谜:四舍五入round(4.5)等于4?
- python自动补全设置_python代码补全
- 基于python的安全帽识别安全帽检测可以检测图片,视频流,有界面[通俗易懂]
- python fileinput_Python之fileinput模块学习「建议收藏」
- python的random()函数用法_Python随机函数random用法示例
- python全局变量赋值_Python全局变量和局部变量[通俗易懂]
- python selenium 实现自动输入信息报名
- 【说站】python os.popen方法是什么
- Python:函数的定义、参数传入与函数的调用
- 经纬度距离计算 python_Python已知两坐标求距离
- python lambda表达式 if_Python学习-lambda表达式
- PYTHON主机_我的Python世界PDF
- Python Re 正则表达式 数据匹配提取 基本使用
- python-flask之路由及请求参数
- Python基础语法-控制流程语句-continue
- 网络工程师学Python-32-远程连接管理Telnet
- 监控网卡流量python代码详解编程语言
- Python学习:1.快速搭建python环境详解编程语言
- Python exec()和eval()的使用注意事项