|
之前我们你已经说过了led管控机制# c3 b% }% p4 w
聊一聊x3p的LED控制机制7 O! j( H0 T* z3 m4 Q8 v/ [
和用led来显示硬盘温度
$ {8 `; N' h q: u- |让你的RGB灯来指示系统温度 p2 ]$ Z8 c$ H: l W. b/ V
现在我们可以进一步让led来显示系统网速,且往下看
" ~8 k6 m T! H需要用到一个python脚本来获取系统的联网状态以及各个io状态4 F" X, j$ P6 O9 d5 j1 O9 K
- import psutil7 _" G! R6 D- O0 A2 l* l
- print(psutil.net_io_counters(pernic=True))
复制代码 输出结果是下面的
6 B2 b y- R; V- { e1 e( s% \* {) p7 V& w! a
- 'bond0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),8 p7 \+ N, W( d8 B8 N6 i
- 'lo': snetio(bytes_sent = 371531983, bytes_recv = 371531983, packets_sent = 649842, packets_recv = 649842, errin = 0, errout = 0, dropin = 0, dropout = 0),
, o1 b4 L7 }; ~& M - 'tun0': snetio(bytes_sent = 300576, bytes_recv = 0, packets_sent = 9393, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
) ^7 X2 f) U+ ~ - 'sit0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),7 H8 e: M# W2 }" c
- 'ip_vti0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),7 m0 ~' P3 C' o, O) b9 M/ e
- 'eth0': snetio(bytes_sent = 10911429402, bytes_recv = 387312110, packets_sent = 722569, packets_recv = 1194110, errin = 0, errout = 0, dropin = 5, dropout = 0)
- X% h' A- Z( A2 X. z - }
复制代码 有了数据就能够处理数据转化为网速了。
3 P1 Z D( H3 w6 J) g$ Y9 _9 `! H
/ K) J/ P8 @5 z+ m) h
因为网速差别实在太大,所以我用了分级显示的方案:% i/ J7 j2 t. a, M$ x, I+ w( ^
网速为B级别时显示红灯,网速越大,红灯越亮,不过放心,几乎看不到红灯7 }' E* x9 Q1 H% Q) M, e* X$ y: c
网速为K级别时显示绿灯,网速越快,绿灯越绿。这个比较常见,几乎上硬盘待机时就一直是绿灯+ Q' ?3 V+ B$ {6 ^, Q
网速为M级别时显示蓝灯,网速越高,蓝灯越艳丽,当你下载东西或者往硬盘传文件时就是蓝灯了。
; F5 D& _8 I) r* @- net_led_dn() {
: J! j/ g; t3 c3 s - python /root/netspeed.py | sed -e "s/'/\n/g" -e 's/, /=/g' | grep } | awk -F '=' '{print $4}' >/root/new.rtx
9 p+ L7 N" `; c# a0 Y0 v - new_rtx=$(cat /root/new.rtx)
( u! v! ]7 t) g$ x - old_rtx=$(cat /root/rtx.log)* }/ w% {$ _9 `" q u% R
- rtx=$(expr $new_rtx - $old_rtx)
) E" K0 s0 s) [ - echo $rtx {3 ?7 a+ w3 S. o) j
- if [ $rtx -lt 1024 ]; then/ ~2 q0 n- N0 R4 l2 p6 ^( H8 w, L
- 3 Z; x$ w5 n' x, ~% @ g8 \
- rtx_led=$(expr $rtx / 4)- C3 ?, R- r& s1 z
-
. B# ] N! z, u N) Q" a6 ] - set_led c1 $rtx_led 0
2 J7 p* N0 N) N# {: f) v" D - set_led c2 0 0
! N, C# \ f: U. s - set_led c3 0 0
& [+ `/ g; o0 b6 N* _ - 9 M5 r7 {1 |3 f6 t: U, V% c- l$ w
- elif [ $rtx -lt 1048576 ]; then7 U9 A- G4 `1 r$ `. }' t
- rtx_led=$(expr $rtx / 4096)% |; [/ o8 @. o& h
- set_led c1 0 0
( r; y& {; d! ]- j. B- V' d9 ]* L - set_led c2 $rtx_led 0) n) J- v% m1 n" t, u
- set_led c3 0 0
. L( i, E- M3 q# r$ _ u8 d - elif [ $rtx -lt 1073741824 ]; then+ I: J+ E/ X ]
- rtx_led=$(expr $rtx / 4194304); r5 D( C X# G% [; U5 ]& K$ e- w- y% Q
- set_led c1 0 04 h3 ~* L( ]% }0 f! W: O
- set_led c2 0 0
* v: M5 d8 I! U4 @8 r - set_led c3 $rtx_led 00 Y6 C3 P1 p5 `1 u# H
- fi' _2 @9 E/ W1 S7 R9 N
- echo $new_rtx >/root/rtx.log9 C& l& ]7 w: y8 w+ G9 k
- }
复制代码 这个只是显示下载网速的,如果想要显示上传网速也很简单,把第二行的$4改为$2就行了。$ v- h# G9 _. E1 F* e
下面是完整脚本,看附件吧。
, K8 l2 K4 a5 H1 e一共有五个文件
% P3 J- R, W4 o% o& @6 q' S, [- ledstatus.sh #放在/opt/bin文件夹下替换/ k1 Z& q P4 Y0 k9 Y) l' |: S( A
- netspeed.py #放在root下
# \3 p7 K8 T5 \" I/ n: X - new.rt #放在root下
( D0 x6 J; m$ p6 i& P - mew.rtx #放在root下# T) Q8 n% }8 z9 t4 s
- rtx #放在root下
复制代码 8 s/ \. ~3 P' b
6 s$ V: L- M- V; H
led_control.zip
(1015 Bytes, 下载次数: 114)
9 K, _0 {; \2 t o/ ^解压密码(刮刮乐):chwhsen7 t* u( m. O8 O' N, @1 i
7 ], L$ j# t: v( _$ a/ p0 Y3 k* Q& ^
* d. ]9 s) B: s3 j/ b: f, h& i% g/ g$ \ m% O c; V
|
评分
-
查看全部评分
|