|
之前我们你已经说过了led管控机制5 n, W- n+ }9 A2 p9 ~- m u
聊一聊x3p的LED控制机制
8 `( L" w" R9 O( _和用led来显示硬盘温度- V' u3 w' }! H q( U
让你的RGB灯来指示系统温度
( [' P* o; D) V! A现在我们可以进一步让led来显示系统网速,且往下看
* y- c' Q- J: i& R' y! u' Q# K Q8 C需要用到一个python脚本来获取系统的联网状态以及各个io状态, z c; t( L3 S$ Z! X! i
- import psutil
3 V4 }% i0 D5 q. P - print(psutil.net_io_counters(pernic=True))
复制代码 输出结果是下面的# K1 m b& w9 }! x
- {( m, \( A. v$ }$ n! v& e3 S
- 'bond0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
3 r' }* V3 t) T# z+ `1 q6 O - 'lo': snetio(bytes_sent = 371531983, bytes_recv = 371531983, packets_sent = 649842, packets_recv = 649842, errin = 0, errout = 0, dropin = 0, dropout = 0),2 [7 s$ P' s# k
- 'tun0': snetio(bytes_sent = 300576, bytes_recv = 0, packets_sent = 9393, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
& ~5 H3 q- ^0 A1 l: z - 'sit0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
: m1 _+ T% r) B" j3 f( \6 g7 p - 'ip_vti0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0)," h f, M5 k4 ]
- 'eth0': snetio(bytes_sent = 10911429402, bytes_recv = 387312110, packets_sent = 722569, packets_recv = 1194110, errin = 0, errout = 0, dropin = 5, dropout = 0)
$ C4 Y( o6 F" k' m) W$ y; e - }
复制代码 有了数据就能够处理数据转化为网速了。
" @8 o+ X! u$ V- \
: C) h6 x& v* w _; T( c' W1 W
因为网速差别实在太大,所以我用了分级显示的方案:
* R6 Y- b, p+ ]1 c, n- U( j' j网速为B级别时显示红灯,网速越大,红灯越亮,不过放心,几乎看不到红灯
' z4 S" ?3 d& I. i% ~/ a1 u网速为K级别时显示绿灯,网速越快,绿灯越绿。这个比较常见,几乎上硬盘待机时就一直是绿灯
' z" b1 O/ t( j8 t2 l网速为M级别时显示蓝灯,网速越高,蓝灯越艳丽,当你下载东西或者往硬盘传文件时就是蓝灯了。
: ^9 F( N: I7 Y; \- net_led_dn() {
! V+ j4 O8 H( i) u) U - python /root/netspeed.py | sed -e "s/'/\n/g" -e 's/, /=/g' | grep } | awk -F '=' '{print $4}' >/root/new.rtx- c2 p4 h- |7 H6 i
- new_rtx=$(cat /root/new.rtx)
; f/ y, h& B. z9 @' a# ~9 G- z1 f - old_rtx=$(cat /root/rtx.log)% `) `5 l1 i$ L* U. b
- rtx=$(expr $new_rtx - $old_rtx)
" V) L* {9 C- ?3 F# F7 k - echo $rtx
5 i4 l* Q2 u' E5 B/ r" N% h - if [ $rtx -lt 1024 ]; then) v( u: Y2 Z* a; \- }) P
-
1 o* ]/ H+ F" V7 d% [3 q$ n - rtx_led=$(expr $rtx / 4)9 N+ b: z1 |4 P- C$ @- u
- 7 W, ?3 \% P% R
- set_led c1 $rtx_led 04 Q7 k$ |8 v5 [: D- m" F" p8 ]
- set_led c2 0 0
8 N/ x1 ~; [5 ^/ K - set_led c3 0 0" r( r$ L( n. ~) J* r+ t
- 8 U8 ]& L5 k( ?, d
- elif [ $rtx -lt 1048576 ]; then
, \/ ` i2 }: J$ E1 ^/ t( P$ ~1 ~! k - rtx_led=$(expr $rtx / 4096)
* [6 u: N8 d) m- U' {* s - set_led c1 0 02 L4 c7 |3 H. _" A3 c) l
- set_led c2 $rtx_led 0* D& w% V/ n7 F9 H( V I% _
- set_led c3 0 0+ x7 d! }8 I+ q+ _1 a% s
- elif [ $rtx -lt 1073741824 ]; then
4 C) h# L0 c+ h4 t& y - rtx_led=$(expr $rtx / 4194304)5 Y7 I! B6 V$ f Z/ t
- set_led c1 0 01 v$ {3 f( Y2 C7 R; c
- set_led c2 0 0
6 Q1 Z. V: ~5 {0 i - set_led c3 $rtx_led 0
8 x7 ?- @5 m9 g* s - fi
8 L9 l: r5 R, _+ H8 l; F" u4 k - echo $new_rtx >/root/rtx.log
, z8 q) k8 s" `6 U% k7 V* q - }
复制代码 这个只是显示下载网速的,如果想要显示上传网速也很简单,把第二行的$4改为$2就行了。
D* G; ~3 U2 {9 {: u) h下面是完整脚本,看附件吧。1 @& P. w' d) O" N) _4 q
一共有五个文件 h9 j! q) U* F! z Y
- ledstatus.sh #放在/opt/bin文件夹下替换# c. i( I7 v; V9 p+ o$ x# O6 R$ h1 W
- netspeed.py #放在root下
P3 r, W M# J- d - new.rt #放在root下
; @+ @# t6 q2 h! o - mew.rtx #放在root下
3 Z/ x- ?! ] M4 X( M - rtx #放在root下
复制代码 . K+ D" g' B' |- X
! V+ ~. N' o8 G; Q4 f0 H* f
led_control.zip
(1015 Bytes, 下载次数: 114)
+ r& X* a" w( Y
解压密码(刮刮乐):chwhsen! Q7 v/ L0 I) a. l
: F2 X6 t8 a8 |6 C+ j7 _
" N& O( f E' }6 |+ n
l+ N( {. R( f p5 ]1 q: c" H
|
评分
-
查看全部评分
|