import time
from app.utils_ydf import LogManager
logger = LogManager('network_monitor').get_logger_and_add_handlers(log_filename='network_monitor.log')
logger_templete7 = LogManager('network_monitor2').get_logger_and_add_handlers(log_filename='network_monitor.log', formatter_template=7, do_not_use_color_handler=True)
speed_down = []
speed_up = []
speed_name = []
speed_up_1 = []
speed_down_1 = []
while True:
i = open('/proc/net/dev', 'r').readlines()
for p in i:
p = p.split()
if p[1].isdigit() and p[1] != '0':
index = 0
for i in range(len(speed_name)):
if p[0] == speed_name[i]:
index = i
break
if p[0] in speed_name:
pass
else:
speed_name.append(p[0])
speed_down_1.append(p[1])
speed_up_1.append(p[9])
speed_down.append(0)
speed_up.append(0)
break
speed_down[index] = float(int(p[1]) - int(speed_down_1[index])) / 1000
speed_up[index] = float(int(p[9]) - int(speed_up_1[index])) / 1000
speed_down_1[index] = p[1]
speed_up_1[index] = p[9]
for i in range(len(speed_name)):
# if speed_name[i] == 'eno1:':
if 'eno1:' in speed_name[i]: # 只打印此网卡
logger_templete7.debug(f"网卡:{speed_name[i]}")
msg1 = f"上行: {speed_up[i]}"
msg2 = f'下行: {speed_down[i]}'
if speed_up[i] < 100:
logger.debug(msg1)
elif 100 <= speed_up[i] < 200:
logger.info(msg1)
elif 200 <= speed_up[i] < 300:
logger.warning(msg1)
elif 300 <= speed_up[i] < 400:
logger.error(msg1)
elif 400 <= speed_up[i]:
logger.critical(msg1)
if speed_down[i] < 100:
logger.debug(msg2)
elif 100 <= speed_down[i] < 200:
logger.info(msg2)
elif 200 <= speed_down[i] < 300:
logger.warning(msg2)
elif 300 <= speed_down[i] < 400:
logger.error(msg2)
elif 400 <= speed_down[i]:
logger.critical(msg2)
time.sleep(1)
网上找的,亲测可用。
[Linux] - 网速测试命令
Windows网速测试方法有很多,或者可以直接使用浏览器去一些网站上搜索测试即可. 在Linux中其实更容易,只需要一行命令即可搞定: curl -s https://raw.githubuserco ...
python 读取Linux服务器上的文件
使用Python语句,读取Linux远端服务器上的文件打印到控制台的代码实现: 下载包:paramiko import paramiko #服务器信息,主机名(IP地址).端口号.用户名及密码 hos ...
笨办法学Python记录--习题15-17 开始读写文件啦
习题15 - 17 打开并读流程: from sys import argv script,filename = argv txt = open(filename) print "Here' ...
记录Linux下解压大文件时的一次奇葩经历
由于需要安装新的系统,使用wget下载tar包,8G多下载了1个多小时.解压完后的文件夹中的tar包数量明显不够,而且原始的tar包竟然不见了. 同样的操作又进行了一次,结果还是一样,不得不怀疑是哪里 ...
记录linux 生成crash dump文件步骤
执行文件编译时加入-g 命令 例如 g++ -g test.cpp 查看当前系统限制情况 ulimit -a 设置crash dump 文件大小 ulimit -c unlimited unlimit ...
[转]使用Linux命令行测试网速
装speedtest-cli speedtest-cli是一个用Python编写的轻量级Linux命令行工具,在Python2.4至3.4版本下均可运行.它基于Speedtest.net的基础架构来测 ...
使用Linux命令行测试网速
安装speedtest speedtest是一个用Python编写的轻量级Linux命令行工具,在Python2.4至3.4版本下均可运行.它基于Speedtest.net的基础架构来测量网络的上/下 ...
使用Linux命令行测试网速-----speedtest-cli
https://github.com/sivel/speedtest-cli 当发现上网速度变慢时,人们通常会先首先测试自己的电脑到网络服务提供商(通常被称为“最后一公里”)的网络连接速度.在可用于测 ...
Linux命令行测试网速speedtest.net
Linux命令行测试网速speedtest.net 当发现上网速度变慢时,人们通常会先首先测试自己的电脑到网络服务提供商(通常被称为"最后一公里")的网络连接速度.在可用于测试宽带 ...
随机推荐
gulp任务
项目使用的gulp自动化任务 //定义输出文件夹名称 var distFolderH5 = "distH5"; var distFolderMofang = "distM ...
ckplayer播放器去掉右边的开关灯分享插件
在上一篇文章中介绍了如何使用ckplayer播放器,但是有的人不需要CK播放器右边的开关灯分享插件,那么就需要把该插件给去掉,方法也很简单. 第一步:先打开ckplayer.js里找到下面三行删除掉 ...
你确定你是一个合格的.Net开发人员吗?
做.net开发已有近5年时间,自认掌握的知识比较全面.最近部门需要招人,今天抽空在网上看了一下,发现我了解的还是不够多啊.下面是我大致的罗列了一下作为一名.Net开发人员所需要掌握的只是.看看你是不是 ...
C++拾遗(二)关于变量
符号常量——预处理方式 例如: #define ZERO 0 会替换程序中所有的ZERO为0,在那些设计为用于C和C++的头文件中,必须使用#define来定义符号常量. 无符号类型 unsigned ...
spring mvc 安全
1,使用 spring form 标签 防 csrf 攻击 2,标明请求方法:RequestMethod.GET,RequestMethod.POST, PATCH, POST, PUT, and D ...
oracle11g ASM(修复损坏的磁盘组头asm修复2)
--编KFED [oracle@rac2 lib]$cd $ORACLE_HOME/rdbms/lib [oracle@rac2 lib]$ pwd /u01/app/oracle/product/1 ...
iOS之Xcode修改应用图标
随便找一个PNG为后缀的图标, 把它重命名为 icon.png 就可以了. 再次启动 IPhone 模拟器. 就成功了. 及时尺寸不符合审核规范,也是可以显示出来的,供测试效果吧. 为iPhone设 ...
使用Python脚本操作MongoDB的教程
Reference: http://www.jb51.net/article/64225.htm
mysql进阶(十)不靠谱的FLOAT数据类型
今天在设计数据表时,突然发现原来FLOAT原来是很不靠谱的,所以在这里建议大家换成DOUBLE类型, 原因是: 在mysql手册中讲到,在MySQL中的所有计算都是使用双精度完成的,使用float(单 ...
java第一个demo(简单登陆窗体)
首先新建一个Maven项目 选择一个存放项目的目录 ,点击完成(下图). 为了防止jdk版本的问题,所以在pom.xml里面做一个配置,让整个项目统一用jdk 1.8版本(1.7之前可能会存在一些问题 ...