|
|
之前我们你已经说过了led管控机制+ C! y& M5 u; e1 s
聊一聊x3p的LED控制机制
; ~, ]- j% n) U和用led来显示硬盘温度. p! B. p$ N# q( s* b' Z5 I
让你的RGB灯来指示系统温度
4 t# K6 i# [1 K) h现在我们可以进一步让led来显示系统网速,且往下看
, q# c9 F0 c% I1 G- ?1 w0 q7 N$ \需要用到一个python脚本来获取系统的联网状态以及各个io状态# i8 J! O/ H) p% J
- import psutil
4 N, \# w& `' O" E' h - print(psutil.net_io_counters(pernic=True))
复制代码 输出结果是下面的
3 d8 d+ x3 |. L1 S- {
- z5 @8 e8 v. n& m( Z - 'bond0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),: f3 d0 T* c) g
- 'lo': snetio(bytes_sent = 371531983, bytes_recv = 371531983, packets_sent = 649842, packets_recv = 649842, errin = 0, errout = 0, dropin = 0, dropout = 0),! }8 C: ^% u9 M- b E6 [
- 'tun0': snetio(bytes_sent = 300576, bytes_recv = 0, packets_sent = 9393, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0), u4 i0 G+ M: C& k5 a* p
- 'sit0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),. T" u- h5 W: d$ H8 E5 o( e
- '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! }3 T* @6 n) {4 W4 ?1 J1 e
- 'eth0': snetio(bytes_sent = 10911429402, bytes_recv = 387312110, packets_sent = 722569, packets_recv = 1194110, errin = 0, errout = 0, dropin = 5, dropout = 0)
, a2 A; i, k3 L: X# q - }
复制代码 有了数据就能够处理数据转化为网速了。* [* N5 V9 L' W: f
8 t2 L# Q* f, v0 s5 z) z因为网速差别实在太大,所以我用了分级显示的方案:& J8 e" U: k, o! p. m
网速为B级别时显示红灯,网速越大,红灯越亮,不过放心,几乎看不到红灯
8 {* z; P' P8 G+ a0 B U网速为K级别时显示绿灯,网速越快,绿灯越绿。这个比较常见,几乎上硬盘待机时就一直是绿灯
0 y) {, Q" J7 D! b9 G: C网速为M级别时显示蓝灯,网速越高,蓝灯越艳丽,当你下载东西或者往硬盘传文件时就是蓝灯了。
Z; q& y8 D) j- net_led_dn() {( a& x1 D9 i, W: @$ @0 T: ]; C u
- python /root/netspeed.py | sed -e "s/'/\n/g" -e 's/, /=/g' | grep } | awk -F '=' '{print $4}' >/root/new.rtx5 \! `" B$ b6 c
- new_rtx=$(cat /root/new.rtx): ^- `2 l$ P6 F7 ~& A
- old_rtx=$(cat /root/rtx.log)4 ^' y2 U. M# D+ k
- rtx=$(expr $new_rtx - $old_rtx)0 |9 U/ Z' |0 O8 e6 |8 f
- echo $rtx
) }, I. W# z- m. R' ^3 F - if [ $rtx -lt 1024 ]; then4 t: S8 D1 X- ^. f) b( C3 N8 A6 J8 K
- ' Z, {$ B" _$ i: C b
- rtx_led=$(expr $rtx / 4)$ d8 I' o: j' a
-
2 |* g" F- M% a- l* U& R4 [ - set_led c1 $rtx_led 0
) { d9 a0 r& V3 Y, I* e - set_led c2 0 02 R: R. F/ Y! I' [' ~ A, w3 E
- set_led c3 0 0
3 e1 e5 h0 K9 k/ G5 j& c1 m3 {; b -
! g( y0 ^ N" f( J) p) C - elif [ $rtx -lt 1048576 ]; then5 x4 E8 w9 K# s8 e! _
- rtx_led=$(expr $rtx / 4096)
& l2 [: s. n4 I" b - set_led c1 0 0
7 d' \) _- h" c/ r2 ], i1 M+ l5 X' |$ N P - set_led c2 $rtx_led 0/ g$ [) k3 y+ E! J( F- |# s# _
- set_led c3 0 06 X: [$ A. O+ k' p9 a7 T
- elif [ $rtx -lt 1073741824 ]; then1 N1 t# U. {- O( v9 a! r5 ^$ Y
- rtx_led=$(expr $rtx / 4194304)
/ i) _! j( U/ W$ P - set_led c1 0 0( l8 ]2 x! P) V! P% V
- set_led c2 0 0
7 C n, g' y3 L. X - set_led c3 $rtx_led 0) P1 g6 ]3 N* Y3 Q
- fi7 T9 |( q( e. i! ^- L5 u. e
- echo $new_rtx >/root/rtx.log
7 r5 B o/ C! T* \2 x - }
复制代码 这个只是显示下载网速的,如果想要显示上传网速也很简单,把第二行的$4改为$2就行了。
+ k) H& Z$ i! s+ {* s, E下面是完整脚本,看附件吧。3 w6 Y" V! Y8 Z, ^( {
一共有五个文件
' c) X0 h: E4 X" ^1 ~- ledstatus.sh #放在/opt/bin文件夹下替换
% X* N9 _1 ^. } - netspeed.py #放在root下
5 J! x6 x: F5 F6 C, u* Y& c' h% N - new.rt #放在root下
; J+ ~, I W) ~( g7 j - mew.rtx #放在root下+ ~/ q0 q b/ i. F, j
- rtx #放在root下
复制代码 1 n* _% Z0 b4 t: ]; C1 Q& H) P
3 C& K* I' j& a, O* U
led_control.zip
(1015 Bytes, 下载次数: 114)
4 O( G1 A: n; J3 g# p& q' @解压密码(刮刮乐):chwhsen6 y: t% F. {) e ]
' u: w8 _) ~7 D, ^" i7 N
- g" y3 J4 D- L" |% J# }/ R2 [7 v/ W$ C, N- F$ G# z y! R2 H
|
评分
-
查看全部评分
|