|
之前我们你已经说过了led管控机制6 z' I1 m$ v3 U2 u: a. B7 v3 `' l
聊一聊x3p的LED控制机制
e% L4 ]8 y, G" G3 c和用led来显示硬盘温度
) t5 W& V x1 f" ]让你的RGB灯来指示系统温度
) \5 |0 w3 {/ m! t现在我们可以进一步让led来显示系统网速,且往下看2 H+ E$ ~) V2 |/ J& W. e2 f: f
需要用到一个python脚本来获取系统的联网状态以及各个io状态
' F' O$ V+ i7 ]4 o- import psutil
. j+ P5 h! b& b; { - print(psutil.net_io_counters(pernic=True))
复制代码 输出结果是下面的( Y5 _, |1 k1 F$ b. f, I1 V
- {
" p8 w" C! [/ ?' d7 Y% T - 'bond0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
% s% j6 _. N# E9 D* x" f$ }1 s - 'lo': snetio(bytes_sent = 371531983, bytes_recv = 371531983, packets_sent = 649842, packets_recv = 649842, errin = 0, errout = 0, dropin = 0, dropout = 0),
8 R9 I9 ? V: {- Y E - 'tun0': snetio(bytes_sent = 300576, bytes_recv = 0, packets_sent = 9393, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
9 v' K4 f) ~7 t+ t. a0 r/ M - 'sit0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),6 }6 W' I; {" }; b7 _7 L
- 'ip_vti0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),: ?2 ]# t/ M6 B- S+ m
- 'eth0': snetio(bytes_sent = 10911429402, bytes_recv = 387312110, packets_sent = 722569, packets_recv = 1194110, errin = 0, errout = 0, dropin = 5, dropout = 0): j" J% {7 ?2 ]) X! U/ \' c9 V" c
- }
复制代码 有了数据就能够处理数据转化为网速了。
m' ?: N, @2 m; @8 v6 ?
2 H! Q3 D. P( O3 s5 U n; A因为网速差别实在太大,所以我用了分级显示的方案:/ P4 N6 n7 p, `) @. o
网速为B级别时显示红灯,网速越大,红灯越亮,不过放心,几乎看不到红灯" a4 l( r7 V" Z0 l' b
网速为K级别时显示绿灯,网速越快,绿灯越绿。这个比较常见,几乎上硬盘待机时就一直是绿灯. R; Z/ b2 ]# f( ~# M& r' X
网速为M级别时显示蓝灯,网速越高,蓝灯越艳丽,当你下载东西或者往硬盘传文件时就是蓝灯了。 Y: J. G2 E: r- @; F
- net_led_dn() {0 K' n& A) O* W7 R# F- i# H8 L
- python /root/netspeed.py | sed -e "s/'/\n/g" -e 's/, /=/g' | grep } | awk -F '=' '{print $4}' >/root/new.rtx
; p4 y' z- G$ J$ h - new_rtx=$(cat /root/new.rtx)
3 M4 d/ T5 U& R" i8 z) V# O - old_rtx=$(cat /root/rtx.log)
* s8 V( ]0 E, J$ o; ~3 ] - rtx=$(expr $new_rtx - $old_rtx)) \3 n0 b& _1 o( T* m; e" ^
- echo $rtx
& G- L, z% S3 p n9 J' A# D - if [ $rtx -lt 1024 ]; then
9 a6 q8 L! c' C, Q -
7 h1 u% v2 b/ N0 c$ U3 A - rtx_led=$(expr $rtx / 4)
( ?, P n7 m8 d -
& |) B$ b' W: D6 l; T0 o( P - set_led c1 $rtx_led 06 v7 ?, h3 X" m6 Q- R. H2 [7 a
- set_led c2 0 06 T; @, Q5 H R8 M, ~7 }9 _
- set_led c3 0 05 b3 a( K1 ~, z* W) ~* a& Y
-
$ {4 a2 F; _( j% S c8 c - elif [ $rtx -lt 1048576 ]; then
! X& K! _, s# Y5 s# Y0 i( B - rtx_led=$(expr $rtx / 4096)
6 C [. e. ?3 J9 o- Z6 o0 h6 P - set_led c1 0 0: L# H7 ^' N* w4 Q* H0 u& q6 z
- set_led c2 $rtx_led 05 y2 W, t+ J; c1 [. @6 b/ @
- set_led c3 0 0! Z1 a' l8 p9 A I4 |) `" |
- elif [ $rtx -lt 1073741824 ]; then& o1 _1 r9 U+ C4 w: j4 ~, c
- rtx_led=$(expr $rtx / 4194304)
- a: G8 G' T# ?% I3 {8 p - set_led c1 0 0! E% g5 m. B8 b3 c" a. m
- set_led c2 0 09 L* l7 V/ ~3 M# o# \
- set_led c3 $rtx_led 0
" C: m+ @2 b! X1 H$ [ - fi
0 Y8 ? B+ E- z6 D/ E- K - echo $new_rtx >/root/rtx.log5 z, `" c# u- k+ s2 ^) r$ Z+ H( Y
- }
复制代码 这个只是显示下载网速的,如果想要显示上传网速也很简单,把第二行的$4改为$2就行了。& Z& X& `& i6 Y' |# a
下面是完整脚本,看附件吧。
8 J$ z/ r8 s; y6 Z$ i一共有五个文件8 O4 a F: q8 r" s! ~3 s* _# g
- ledstatus.sh #放在/opt/bin文件夹下替换7 B H4 M% j/ Z7 m5 w: X
- netspeed.py #放在root下 - F$ H, E9 h+ U! a. z
- new.rt #放在root下0 s" V ?/ U2 F5 ]8 p
- mew.rtx #放在root下
: f; g1 Q2 G$ l - rtx #放在root下
复制代码 6 e0 Y" ? H. I3 X9 V6 |* @. W1 s
* u- k5 b6 X2 @0 v- a- _
led_control.zip
(1015 Bytes, 下载次数: 114)
Q0 b- H9 \* K5 W5 t' b- B' z* b3 J解压密码(刮刮乐):chwhsen* @: M0 e' ~ b- z; ~
' V+ g. G2 A, v, f. J0 Z
' Q, S6 ? L5 v! N
0 K9 X) W# G# t- g {/ i |
评分
-
查看全部评分
|