|
|
之前我们你已经说过了led管控机制9 @, ^; c- G% K
聊一聊x3p的LED控制机制( x, N! \5 }4 P% ~, N9 U' f
和用led来显示硬盘温度
" P" v5 q7 Q8 o+ t让你的RGB灯来指示系统温度 H. ]1 k D( ~, i1 c- {
现在我们可以进一步让led来显示系统网速,且往下看
( g6 Z: y1 D" T# J3 O需要用到一个python脚本来获取系统的联网状态以及各个io状态2 `: O W) r2 b$ `+ m
- import psutil+ c7 `* }/ h; P
- print(psutil.net_io_counters(pernic=True))
复制代码 输出结果是下面的& b/ G( m" Q: G6 |* x
- {
! e a) E9 i. U3 F2 a( v y - 'bond0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
: `) d7 q, U6 X4 I3 J# l - 'lo': snetio(bytes_sent = 371531983, bytes_recv = 371531983, packets_sent = 649842, packets_recv = 649842, errin = 0, errout = 0, dropin = 0, dropout = 0),
5 d7 ?. f% D1 e - 'tun0': snetio(bytes_sent = 300576, bytes_recv = 0, packets_sent = 9393, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
1 u; V" Q6 D/ y+ w5 ] - 'sit0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
4 {) _1 Z$ I; ~# g - 'ip_vti0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
: m# y9 m. s* r/ s- V/ E& h' `4 e - 'eth0': snetio(bytes_sent = 10911429402, bytes_recv = 387312110, packets_sent = 722569, packets_recv = 1194110, errin = 0, errout = 0, dropin = 5, dropout = 0)
" ~/ m9 R9 h0 p2 [4 h! s - }
复制代码 有了数据就能够处理数据转化为网速了。
, |0 Z5 ~: c1 T+ z0 @& v6 A+ ^
: n4 V7 V% J1 M1 s$ c, Y
因为网速差别实在太大,所以我用了分级显示的方案:) k- b3 S$ Y1 X+ k/ P6 m
网速为B级别时显示红灯,网速越大,红灯越亮,不过放心,几乎看不到红灯2 S* y$ y# ^: l: S% c
网速为K级别时显示绿灯,网速越快,绿灯越绿。这个比较常见,几乎上硬盘待机时就一直是绿灯
& V- \$ ?% m" p" W- z* I3 ?网速为M级别时显示蓝灯,网速越高,蓝灯越艳丽,当你下载东西或者往硬盘传文件时就是蓝灯了。
; K! m% p$ e: q8 L6 j; O; O8 y- net_led_dn() {9 o3 \1 j9 j- S. X5 N
- python /root/netspeed.py | sed -e "s/'/\n/g" -e 's/, /=/g' | grep } | awk -F '=' '{print $4}' >/root/new.rtx
8 S/ @, {7 g S+ P, \ - new_rtx=$(cat /root/new.rtx)$ a3 n# i6 I, B
- old_rtx=$(cat /root/rtx.log)
* r5 s c" Q: d+ o8 [- j7 A - rtx=$(expr $new_rtx - $old_rtx)8 S) _; U5 a8 ?! N
- echo $rtx1 l( o2 o* I p% h3 [
- if [ $rtx -lt 1024 ]; then' V+ v8 l7 a& C& X3 P6 Y2 n
- ) n! h) x. @. l1 a' u6 n0 {6 i( M7 {
- rtx_led=$(expr $rtx / 4)' E n! y8 G, Z
- # u2 e! z# o' U- D1 t m7 c
- set_led c1 $rtx_led 0
/ o8 o; o' I4 j* [0 p2 M - set_led c2 0 0
- D* s0 e- q0 Z9 Y: a, K7 ~) E% x5 u - set_led c3 0 0
% d5 v6 X1 g4 N$ g - ( c. q/ P- j0 s! s! A8 g
- elif [ $rtx -lt 1048576 ]; then
, a! s% w4 U4 i- _7 ^* A4 M - rtx_led=$(expr $rtx / 4096)) [5 [+ ]( n- N- j; I8 o
- set_led c1 0 0) C) w, A- p# S; t
- set_led c2 $rtx_led 0
- b5 t3 _( q. c; p% F5 [ - set_led c3 0 0
# k: ?5 r- ^1 g! z - elif [ $rtx -lt 1073741824 ]; then2 d) n3 r0 w# y) P( c7 z
- rtx_led=$(expr $rtx / 4194304) D+ j$ y& [. D) r$ s! i
- set_led c1 0 0
( _/ E; n! J0 c" t1 W8 {$ k1 ^ - set_led c2 0 0
+ Y6 R: K0 E) }: k9 w - set_led c3 $rtx_led 0
5 k: T6 S; W3 e - fi: g- e3 e U' e2 b% o4 ~/ m
- echo $new_rtx >/root/rtx.log" G. C3 D1 \4 z8 N$ F
- }
复制代码 这个只是显示下载网速的,如果想要显示上传网速也很简单,把第二行的$4改为$2就行了。- I0 f* H1 j% I. K
下面是完整脚本,看附件吧。
3 L+ y% x# Z) p. ?# f" X G2 S一共有五个文件8 ^- O; Z5 n& Z! G/ T0 e2 a: ^& ~
- ledstatus.sh #放在/opt/bin文件夹下替换
& O9 s5 h+ v% l3 X* y+ ]. i - netspeed.py #放在root下 ! V, }+ p _5 }0 j0 d" Y
- new.rt #放在root下, u- ^8 } V: C1 w6 u" Y1 }
- mew.rtx #放在root下. @; m0 {. F3 `' l
- rtx #放在root下
复制代码 % L. g+ s+ t+ S0 Z/ }$ B' f
0 I7 `0 T- c$ z' k3 s- }) h
led_control.zip
(1015 Bytes, 下载次数: 114)
( y+ E% K/ e) ?; f( y7 ^解压密码(刮刮乐):chwhsen" {) \9 a- m) x9 V
- q/ H# g" R4 |1 r8 e
- b' Z8 C4 r, x# \! x& {% h: U8 u$ g- n+ {7 y$ h
|
评分
-
查看全部评分
|