|
之前我们你已经说过了led管控机制
) o% I0 [4 u1 t2 e6 y4 z, C, g 聊一聊x3p的LED控制机制
. M) H$ o$ ?" `* ]8 I, ^和用led来显示硬盘温度6 F) u2 y4 I9 H+ K7 ~
让你的RGB灯来指示系统温度
' r. k6 `! [. y4 }! S0 S现在我们可以进一步让led来显示系统网速,且往下看+ G8 g9 L( G0 Z0 O; u
需要用到一个python脚本来获取系统的联网状态以及各个io状态( m; Q, d5 }2 J$ J4 l
- import psutil
0 A, X, H+ m3 U0 r - print(psutil.net_io_counters(pernic=True))
复制代码 输出结果是下面的
# q( T% q! S; l& l+ I# A* }- {
1 _! o2 o, S7 `( g8 M# S2 n: y - 'bond0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),4 e' |" X2 p4 H. t( M" I4 B
- 'lo': snetio(bytes_sent = 371531983, bytes_recv = 371531983, packets_sent = 649842, packets_recv = 649842, errin = 0, errout = 0, dropin = 0, dropout = 0),
3 d$ H# m3 ~1 h: Q) c0 B - 'tun0': snetio(bytes_sent = 300576, bytes_recv = 0, packets_sent = 9393, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),# p3 @/ q% X# g( r
- 'sit0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
& l0 ?% G* Y7 k& b4 T7 T - 'ip_vti0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),7 h& \' n( K; R! m0 w4 w
- 'eth0': snetio(bytes_sent = 10911429402, bytes_recv = 387312110, packets_sent = 722569, packets_recv = 1194110, errin = 0, errout = 0, dropin = 5, dropout = 0)
1 I9 B8 C+ Q" I" z N - }
复制代码 有了数据就能够处理数据转化为网速了。
( n( g+ s1 d: Q5 {
, N0 r% n+ @$ l3 K. \因为网速差别实在太大,所以我用了分级显示的方案:
7 P# L6 ^. u1 r1 [9 A+ e8 T! k网速为B级别时显示红灯,网速越大,红灯越亮,不过放心,几乎看不到红灯0 `; o1 x t* V; _
网速为K级别时显示绿灯,网速越快,绿灯越绿。这个比较常见,几乎上硬盘待机时就一直是绿灯
; s9 f/ a3 a" Y网速为M级别时显示蓝灯,网速越高,蓝灯越艳丽,当你下载东西或者往硬盘传文件时就是蓝灯了。
2 I% f; @; Q# m/ Z$ |' M- net_led_dn() {/ S' P% y: ~: u7 y5 b( m: l
- python /root/netspeed.py | sed -e "s/'/\n/g" -e 's/, /=/g' | grep } | awk -F '=' '{print $4}' >/root/new.rtx% p" D5 }9 O9 ?! B
- new_rtx=$(cat /root/new.rtx)
1 j9 w; r/ ?( y! J4 K( y: E4 A3 X - old_rtx=$(cat /root/rtx.log)* |* h, L0 O- e! s! f$ i2 S. q7 b
- rtx=$(expr $new_rtx - $old_rtx)
2 V$ ^* s! }# g, G6 b9 L - echo $rtx* w( o& ~+ T4 r% `
- if [ $rtx -lt 1024 ]; then
' F3 P/ C* L+ C" i4 G8 N - ; d8 f& I" A' w+ e& f) F- a: s& O
- rtx_led=$(expr $rtx / 4)
$ a6 U! w. e4 n1 E7 ?( n4 t& C# M - 4 L( d/ `% T- g4 U z }
- set_led c1 $rtx_led 0
9 l. b$ c& |% V8 }. y+ X% V - set_led c2 0 0
4 O+ s" B8 W; C9 D' _0 Z - set_led c3 0 0
7 C T* K- Z1 y) ] - + B2 v% @3 t7 a/ x/ a: }% T' J
- elif [ $rtx -lt 1048576 ]; then6 H3 t8 _! ?, ?! y" l8 U/ C
- rtx_led=$(expr $rtx / 4096)* c% F9 h: x. U
- set_led c1 0 0! L7 b% J, j5 l# M
- set_led c2 $rtx_led 0
$ B" ~% U$ y/ m$ B$ B3 ~3 P, H9 K - set_led c3 0 0
; e- s3 v9 {$ O$ `2 B( M - elif [ $rtx -lt 1073741824 ]; then
2 U* @3 X2 @& u1 s/ f* g" f - rtx_led=$(expr $rtx / 4194304): Q. j1 h- H, q8 w+ p5 |: k
- set_led c1 0 0
. e( }- r2 @( H/ V5 o4 e0 \6 a - set_led c2 0 0
: p* S# P1 f# `3 P/ Y - set_led c3 $rtx_led 0
g1 q, U* y8 q' n8 d: F - fi
8 x- h" V: a! ?3 |# l5 l: F - echo $new_rtx >/root/rtx.log
7 P% [# ^# y' _& X% q - }
复制代码 这个只是显示下载网速的,如果想要显示上传网速也很简单,把第二行的$4改为$2就行了。
* _) j: z) ?# D5 ]3 e1 e下面是完整脚本,看附件吧。
4 R2 t2 ^! G4 }% [3 J! x$ A% ]一共有五个文件
; H4 f; s" x, Z- x7 U7 q- ledstatus.sh #放在/opt/bin文件夹下替换, r/ r5 a- @% h, s
- netspeed.py #放在root下
( O- x1 d6 x( z8 o - new.rt #放在root下' @* n0 x( i! u
- mew.rtx #放在root下
) \. W4 L I+ m+ c - rtx #放在root下
复制代码
. l3 \# T. s: ~) T) P- Z) I3 h+ B" W: r
led_control.zip
(1015 Bytes, 下载次数: 114)
, ?5 H" @& T; [, b
解压密码(刮刮乐):chwhsen" _5 D/ O7 u) n* x* l0 j
+ L g8 k) {) Z" [6 a' I
* `: X! C7 y* S7 h- o; O( k" p0 ~, i1 R/ s$ C2 j2 N
|
评分
-
查看全部评分
|