|
|
之前我们你已经说过了led管控机制
6 E! m2 }, B3 H( o. J 聊一聊x3p的LED控制机制
8 [: i# ^* L" d. g和用led来显示硬盘温度
- u9 c1 H" [+ q" z8 v让你的RGB灯来指示系统温度# }! H+ M7 }( C5 H
现在我们可以进一步让led来显示系统网速,且往下看/ V5 F( ]4 c5 l% z9 A7 f6 u5 ~
需要用到一个python脚本来获取系统的联网状态以及各个io状态
3 T8 \) D- ?, l2 f- import psutil
( P7 a! J: g/ f) \' I! p+ m - print(psutil.net_io_counters(pernic=True))
复制代码 输出结果是下面的
0 t& {; a; n" p* D1 D- {+ r+ e! c9 e' Y3 W
- 'bond0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
" k! q$ n8 q+ N" T/ m4 ^ - 'lo': snetio(bytes_sent = 371531983, bytes_recv = 371531983, packets_sent = 649842, packets_recv = 649842, errin = 0, errout = 0, dropin = 0, dropout = 0),
% n9 G5 o" |& x$ D - 'tun0': snetio(bytes_sent = 300576, bytes_recv = 0, packets_sent = 9393, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),3 ]# h. c5 k% o( u
- 'sit0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
2 Z& q7 k6 h% D& g" s* |/ s% Q. h - 'ip_vti0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),' k0 I6 K5 S. t0 F m
- 'eth0': snetio(bytes_sent = 10911429402, bytes_recv = 387312110, packets_sent = 722569, packets_recv = 1194110, errin = 0, errout = 0, dropin = 5, dropout = 0)' w2 i! |1 F( P0 P7 d# k% R
- }
复制代码 有了数据就能够处理数据转化为网速了。 Q. m! B' m! \( g
* a9 Y% { S7 g% j1 g因为网速差别实在太大,所以我用了分级显示的方案:# V' y! O K# g" C
网速为B级别时显示红灯,网速越大,红灯越亮,不过放心,几乎看不到红灯! S0 v: Z4 T6 S3 \; q3 T* y
网速为K级别时显示绿灯,网速越快,绿灯越绿。这个比较常见,几乎上硬盘待机时就一直是绿灯
2 [- ]- U. `' _网速为M级别时显示蓝灯,网速越高,蓝灯越艳丽,当你下载东西或者往硬盘传文件时就是蓝灯了。# D0 I. F2 D" M& V( F" ]
- net_led_dn() {
/ ?! m& D3 v. n; c- S4 v. c5 f - python /root/netspeed.py | sed -e "s/'/\n/g" -e 's/, /=/g' | grep } | awk -F '=' '{print $4}' >/root/new.rtx
) r+ C1 K; o. D) [. ~0 F. E& u! t - new_rtx=$(cat /root/new.rtx)1 b, Q. h5 `$ l1 n) z: u
- old_rtx=$(cat /root/rtx.log)
8 o1 A4 J9 F! p - rtx=$(expr $new_rtx - $old_rtx)
+ S$ r& m0 `0 g- z4 {# x - echo $rtx/ K$ @; o; s7 M
- if [ $rtx -lt 1024 ]; then1 f3 R- [3 K! w$ g' G
- # d; m1 Y+ H5 _3 J
- rtx_led=$(expr $rtx / 4)
7 ?; N4 ~! ^$ l0 k3 G% e -
2 g5 [! @$ X) B# m: z - set_led c1 $rtx_led 0
; y" s+ _1 Z% c( _/ t - set_led c2 0 0
- d: x7 ?0 y% b5 p& u - set_led c3 0 0
% Z0 y+ b6 O4 M( N8 P& h - ' Q9 b n+ Y5 H. x/ g
- elif [ $rtx -lt 1048576 ]; then
" ^# Z% e9 }: F - rtx_led=$(expr $rtx / 4096) d: w3 r/ y0 r' x% _# p
- set_led c1 0 0
" Y5 m2 ?1 P# p3 b) d! ^+ w4 c - set_led c2 $rtx_led 0
2 m7 b3 w) G5 L$ T% v3 I - set_led c3 0 0. W* d" E% J1 Z+ M0 `
- elif [ $rtx -lt 1073741824 ]; then' `& T8 f$ \2 N* f8 F
- rtx_led=$(expr $rtx / 4194304)! d: N: j0 v* C! L
- set_led c1 0 0
. ~' I7 l% g$ M. H9 _1 y6 k, Z - set_led c2 0 08 u: f! c6 ~- ]# [4 f, t
- set_led c3 $rtx_led 0 Z( w5 P1 m0 F# e- }
- fi
7 n6 }, L* L0 a# Z( S/ I" W ~0 U+ ], M - echo $new_rtx >/root/rtx.log/ Q- o6 @# g- p; S) v
- }
复制代码 这个只是显示下载网速的,如果想要显示上传网速也很简单,把第二行的$4改为$2就行了。1 O# @# u+ G' x) I* Q7 y
下面是完整脚本,看附件吧。2 v0 _* o3 r4 P. `1 V+ t0 K
一共有五个文件
) F" D. x% {0 k- ledstatus.sh #放在/opt/bin文件夹下替换
, q, o, e. u% [, a: T - netspeed.py #放在root下
3 G3 |5 G' U- N5 s - new.rt #放在root下
4 X% E7 |7 \/ l - mew.rtx #放在root下& h+ n1 E4 M5 h* L S; A/ _" @. e
- rtx #放在root下
复制代码
; X( h* T1 z4 @: O4 A, N, S0 b6 C1 H0 k) Z4 O0 u$ g* r2 L
led_control.zip
(1015 Bytes, 下载次数: 114)
/ i, m$ K9 _$ E1 {8 z8 o* Z( q解压密码(刮刮乐):chwhsen
9 b( m# t* @0 R6 Y' N. ]& w. q* K
# w# n* T: ~4 }# O `6 m0 F2 z' ?/ Q/ x9 Q
: P: P+ Z1 ?% ~
|
评分
-
查看全部评分
|