|
|
之前我们你已经说过了led管控机制
2 A |8 L- K2 z 聊一聊x3p的LED控制机制3 \ y$ M4 B9 l- @5 L
和用led来显示硬盘温度
4 Z& w |9 s S让你的RGB灯来指示系统温度9 P& z" T9 H6 r2 J) Z6 J
现在我们可以进一步让led来显示系统网速,且往下看
9 { Z$ Z% Z! A8 l需要用到一个python脚本来获取系统的联网状态以及各个io状态
- _6 {' j' O9 T L2 }+ X- import psutil! x; X5 w1 k# w
- print(psutil.net_io_counters(pernic=True))
复制代码 输出结果是下面的
( i; b6 x. R& x- {
9 k& t# D; N! n! K - 'bond0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),0 Q% r6 q. l6 w2 \9 ~9 I
- 'lo': snetio(bytes_sent = 371531983, bytes_recv = 371531983, packets_sent = 649842, packets_recv = 649842, errin = 0, errout = 0, dropin = 0, dropout = 0),% G- C; T' l9 W. M9 F& D( ]
- 'tun0': snetio(bytes_sent = 300576, bytes_recv = 0, packets_sent = 9393, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0), G+ Q1 x3 c- }/ v4 _
- 'sit0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
" o5 h$ ~3 C4 E) }2 ]/ q - 'ip_vti0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
% i& ^ G( F7 T6 y- [! J+ r |3 g - 'eth0': snetio(bytes_sent = 10911429402, bytes_recv = 387312110, packets_sent = 722569, packets_recv = 1194110, errin = 0, errout = 0, dropin = 5, dropout = 0)! c; G2 z8 \6 i/ s i
- }
复制代码 有了数据就能够处理数据转化为网速了。
" e2 C& J* u7 F- r
- I* R" q0 _ g3 H$ \因为网速差别实在太大,所以我用了分级显示的方案:0 Q( t: R9 L/ ^0 A
网速为B级别时显示红灯,网速越大,红灯越亮,不过放心,几乎看不到红灯0 K3 i F+ I+ |( y0 {% q
网速为K级别时显示绿灯,网速越快,绿灯越绿。这个比较常见,几乎上硬盘待机时就一直是绿灯
4 G& ] P. w! ]- M( Z2 S6 p网速为M级别时显示蓝灯,网速越高,蓝灯越艳丽,当你下载东西或者往硬盘传文件时就是蓝灯了。
+ \% u8 X2 [8 H: T* O# [- net_led_dn() {- F* t, q7 f8 _
- python /root/netspeed.py | sed -e "s/'/\n/g" -e 's/, /=/g' | grep } | awk -F '=' '{print $4}' >/root/new.rtx
7 j; [/ b% `9 Q$ k# r% l2 C. Z - new_rtx=$(cat /root/new.rtx)
% V( I @4 U+ Z/ d( ~' U - old_rtx=$(cat /root/rtx.log)
0 ~1 }6 P& w; T - rtx=$(expr $new_rtx - $old_rtx)8 R% _0 M+ t# ` s# _3 B* T
- echo $rtx/ z. J/ n/ p7 e% I" F0 g, r7 F
- if [ $rtx -lt 1024 ]; then
# z$ h7 E6 J2 r/ J' h -
~9 [" c# D; O: e - rtx_led=$(expr $rtx / 4)" x+ Q( O L5 ^" _2 D0 v8 D
-
/ p& n+ D) N# _+ ]- ?: O" \ - set_led c1 $rtx_led 06 u7 m& D `* S% E5 M
- set_led c2 0 0
2 I' Z% [# E$ [7 W, A9 F" d) X - set_led c3 0 0
Q7 z( W3 B9 b -
* s' u/ [1 d( @% g5 O - elif [ $rtx -lt 1048576 ]; then3 t: G; n/ Q$ s6 J8 y3 @
- rtx_led=$(expr $rtx / 4096)1 C. U& ? i% Y% A: P' F% C& H; j q
- set_led c1 0 0
7 \; }8 O3 |) A4 Z - set_led c2 $rtx_led 0
! d$ {+ z$ X) w( ] - set_led c3 0 0/ G* o$ o- U* O: }; }' ?: X* z
- elif [ $rtx -lt 1073741824 ]; then7 I4 d' o- o0 a6 f) ~
- rtx_led=$(expr $rtx / 4194304)
' j1 W; @' R* `2 i2 R" N1 p6 ` f8 L - set_led c1 0 0# j$ u( @, |$ U9 H
- set_led c2 0 0
% b# ~2 B1 h( _( m! B - set_led c3 $rtx_led 0
2 D! r2 j# B7 E' P) n( \/ c3 z - fi2 m9 `3 c, I4 R$ @' v* {: G
- echo $new_rtx >/root/rtx.log
/ n4 Z/ O( p1 ~5 T0 T3 A2 z - }
复制代码 这个只是显示下载网速的,如果想要显示上传网速也很简单,把第二行的$4改为$2就行了。
% I! g- p# R4 y3 a( ?下面是完整脚本,看附件吧。
. S; S' w% _& T! g一共有五个文件* [- V5 R0 R+ O8 R
- ledstatus.sh #放在/opt/bin文件夹下替换2 i8 t3 ?- i( l( b' F* X
- netspeed.py #放在root下 * I- |3 ?/ p- N) m/ A( D
- new.rt #放在root下
' }- G4 I) |) C- a - mew.rtx #放在root下
# g# L2 T4 r& M- J% f - rtx #放在root下
复制代码 5 Y3 J! ?# p, `! G, `, G
X8 I5 r# L/ R6 d) s( W* v: D
led_control.zip
(1015 Bytes, 下载次数: 114)
6 v) m+ S$ ?0 n( |" A解压密码(刮刮乐):chwhsen
4 N) V0 {& L9 W: G% C3 K
! z% j L- }& {: u3 u7 U, E* `( ^5 N* ]" w+ r8 W
+ ^6 Z5 b, m+ S8 U* D: G$ {4 S
|
评分
-
查看全部评分
|