|
之前我们你已经说过了led管控机制; I1 }- j8 O0 i' k4 B- C
聊一聊x3p的LED控制机制
8 j5 I( s$ n7 O2 M2 E和用led来显示硬盘温度
# A. m6 A2 ]. H/ q2 Y+ F让你的RGB灯来指示系统温度
6 \5 C0 X3 u' v' R& j现在我们可以进一步让led来显示系统网速,且往下看
; Z( Z* C1 E1 h. m需要用到一个python脚本来获取系统的联网状态以及各个io状态
* F* ^% W6 n) a$ \- import psutil% w. `9 E1 @% Z7 Z1 _
- print(psutil.net_io_counters(pernic=True))
复制代码 输出结果是下面的
' g1 n8 p c8 ^& \- {9 g. x9 o4 ~* j- O
- 'bond0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
% h% k0 y& H$ T' b& p- }+ P - 'lo': snetio(bytes_sent = 371531983, bytes_recv = 371531983, packets_sent = 649842, packets_recv = 649842, errin = 0, errout = 0, dropin = 0, dropout = 0),
, V. w% V( j% Z4 l' m! b( f - 'tun0': snetio(bytes_sent = 300576, bytes_recv = 0, packets_sent = 9393, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),+ Z; T v" a3 w
- 'sit0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),5 J% _4 \+ M8 V) D O- n
- 'ip_vti0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),+ k1 g5 a: Y. |$ ~3 M; B6 h, E
- 'eth0': snetio(bytes_sent = 10911429402, bytes_recv = 387312110, packets_sent = 722569, packets_recv = 1194110, errin = 0, errout = 0, dropin = 5, dropout = 0)
# s$ b, n: }7 s# _ v3 q - }
复制代码 有了数据就能够处理数据转化为网速了。6 o; G! }% e/ a5 {4 j
9 L8 W3 a. x" P# @3 |因为网速差别实在太大,所以我用了分级显示的方案:
+ ?' T* M3 M6 [/ ^网速为B级别时显示红灯,网速越大,红灯越亮,不过放心,几乎看不到红灯- v4 _' N5 p% r6 }
网速为K级别时显示绿灯,网速越快,绿灯越绿。这个比较常见,几乎上硬盘待机时就一直是绿灯7 T4 T R, k* Y! q3 }
网速为M级别时显示蓝灯,网速越高,蓝灯越艳丽,当你下载东西或者往硬盘传文件时就是蓝灯了。
0 p5 p7 x+ w0 K% W. ~4 R- net_led_dn() {$ m% p. q; k( j
- python /root/netspeed.py | sed -e "s/'/\n/g" -e 's/, /=/g' | grep } | awk -F '=' '{print $4}' >/root/new.rtx
- `0 a3 j. N% `. P( s - new_rtx=$(cat /root/new.rtx)
* I, d+ q/ t1 U, A8 u - old_rtx=$(cat /root/rtx.log): G6 M t9 o. N0 Z7 f% X
- rtx=$(expr $new_rtx - $old_rtx)& \! g/ ~! R# l& o J) _6 n3 y: K
- echo $rtx# ~ l, v+ a' \# y) k2 X( @
- if [ $rtx -lt 1024 ]; then
& l1 b" }: P: l -
8 r8 h, N" Z# ?; w- `# b8 c - rtx_led=$(expr $rtx / 4)8 m( m5 E$ L+ t1 W6 U, N' S) ^5 K
-
$ ~9 s6 J7 s( h: T, @ - set_led c1 $rtx_led 0
h' H4 L8 ~+ l) m( d* j - set_led c2 0 08 Y+ w' m h! K* h
- set_led c3 0 0% _* \: Z, B! J: o0 B4 [; m: a% Z6 {
- ( [+ }3 n& P' m( e' n1 y
- elif [ $rtx -lt 1048576 ]; then. Z) E0 d) y: B* W* W
- rtx_led=$(expr $rtx / 4096)3 L( k* ~8 v( V' h- ^
- set_led c1 0 03 M7 x1 Y8 n, J4 t2 _
- set_led c2 $rtx_led 02 m' o$ R% |4 b$ g' t( Q
- set_led c3 0 08 y- v w+ S+ p# ~5 h
- elif [ $rtx -lt 1073741824 ]; then
" c m. p: \, C; C8 | - rtx_led=$(expr $rtx / 4194304). p+ j- M: B$ d9 i R: U. r
- set_led c1 0 0
' f* u+ }3 b# G- r - set_led c2 0 0, W. ^5 ^; F, B Q- y! Y
- set_led c3 $rtx_led 0
% n5 A" J2 [, r - fi, j+ z1 R6 {' X5 w& O2 R
- echo $new_rtx >/root/rtx.log
- M- t# R/ [/ L5 o8 n2 J - }
复制代码 这个只是显示下载网速的,如果想要显示上传网速也很简单,把第二行的$4改为$2就行了。
) A( V' V6 S7 f" m# o下面是完整脚本,看附件吧。, W" U% i1 W: e$ c! O
一共有五个文件
0 Q4 g1 p: U6 M- ledstatus.sh #放在/opt/bin文件夹下替换: x$ }5 q* {" p n( t& |
- netspeed.py #放在root下
" D- b- Z7 H+ |# s - new.rt #放在root下
/ I3 O2 F. B8 N3 W" a - mew.rtx #放在root下
2 @, A- {/ ?5 w - rtx #放在root下
复制代码
$ V: {2 K G. t) Z5 g0 C2 _/ {8 @4 c* O" ], Q% N
led_control.zip
(1015 Bytes, 下载次数: 114)
5 ?3 {# X! P% O; D* H
解压密码(刮刮乐):chwhsen
; ~6 h( ~/ y! M7 P# i/ H# X1 C% ~# F1 v; H: d! K
7 C: J! P6 |& {, n: R( P( N# \; c
+ I2 }1 \4 Y2 W1 j+ w% d7 C |
评分
-
查看全部评分
|