|
|
之前我们你已经说过了led管控机制: \; c7 O2 c) H; u1 ?2 |& \% h
聊一聊x3p的LED控制机制
$ x& l0 l0 V9 l1 u和用led来显示硬盘温度
7 E3 v# @9 J6 [* [; Y* c让你的RGB灯来指示系统温度4 W9 k. r+ Q* m! h9 [
现在我们可以进一步让led来显示系统网速,且往下看
9 _2 f0 E( r) h# ~4 m需要用到一个python脚本来获取系统的联网状态以及各个io状态
( _, X- ?4 }+ Q4 h' ?' j- import psutil
5 w/ O4 Q+ Q! b* u: k* m Z. W - print(psutil.net_io_counters(pernic=True))
复制代码 输出结果是下面的
. F8 ?& {9 N& u7 K- {
: j) z2 }. ^2 y ~. B - 'bond0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
. B! i- A3 {! C8 g8 Z: X# C - 'lo': snetio(bytes_sent = 371531983, bytes_recv = 371531983, packets_sent = 649842, packets_recv = 649842, errin = 0, errout = 0, dropin = 0, dropout = 0),3 _% \, N6 W4 }; _! U" f
- 'tun0': snetio(bytes_sent = 300576, bytes_recv = 0, packets_sent = 9393, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
6 N1 Y7 [& R5 E$ M% {1 F - 'sit0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
+ [$ {1 X) c# Q - 'ip_vti0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),4 P) W9 y% t4 F' J( K% ~0 R# e: z7 u# V
- 'eth0': snetio(bytes_sent = 10911429402, bytes_recv = 387312110, packets_sent = 722569, packets_recv = 1194110, errin = 0, errout = 0, dropin = 5, dropout = 0)
/ d: w1 _( E) G: r" x# a# {! E - }
复制代码 有了数据就能够处理数据转化为网速了。' y2 n" C0 z2 r& o* c& {) D
6 v' V5 l6 {6 V因为网速差别实在太大,所以我用了分级显示的方案:6 c7 B" @: H" m
网速为B级别时显示红灯,网速越大,红灯越亮,不过放心,几乎看不到红灯( I- i% ~3 }0 c- ^) i8 [; ?5 S8 _
网速为K级别时显示绿灯,网速越快,绿灯越绿。这个比较常见,几乎上硬盘待机时就一直是绿灯
2 x2 Z. T& [' \6 W8 S: E( A3 g网速为M级别时显示蓝灯,网速越高,蓝灯越艳丽,当你下载东西或者往硬盘传文件时就是蓝灯了。; v$ J5 X. L$ R R+ I, | C8 k& d
- net_led_dn() {/ x7 X0 s6 Z+ s6 \) t. _
- python /root/netspeed.py | sed -e "s/'/\n/g" -e 's/, /=/g' | grep } | awk -F '=' '{print $4}' >/root/new.rtx
1 k. s5 g5 [ s# t - new_rtx=$(cat /root/new.rtx)
- y9 ~* K* H# M9 c% }2 H3 k0 l0 a - old_rtx=$(cat /root/rtx.log)7 Z- ]! A3 _1 T J8 o7 C
- rtx=$(expr $new_rtx - $old_rtx), [8 `" E9 \! J9 u6 W6 V# W
- echo $rtx9 v: R' Q- c; |+ b
- if [ $rtx -lt 1024 ]; then9 j# Q0 V/ _. s6 p; J0 i
-
; r( ?& A+ j8 z" |/ Q! y) q' h: ~: n - rtx_led=$(expr $rtx / 4)
7 X( w" T0 u2 s) H" J -
4 {( C* {3 F! V1 D - set_led c1 $rtx_led 0+ F F9 ~4 ]7 ^! U7 A( ?
- set_led c2 0 0- {4 m2 z: J' {) O( j" N5 s& w% j' N
- set_led c3 0 0
% i2 b( r9 c. u' p. Y6 e -
: j L% @& M% B/ ]6 ?( H - elif [ $rtx -lt 1048576 ]; then
3 n' l4 `0 ~/ z2 d3 @; Q9 m - rtx_led=$(expr $rtx / 4096)
3 E, C" x( D! u- q, v E: G - set_led c1 0 0 _2 q+ v4 M. Y# _
- set_led c2 $rtx_led 0
2 U3 U2 O2 x( }3 O0 p! a - set_led c3 0 0
. ?6 J V5 [& G) m3 P - elif [ $rtx -lt 1073741824 ]; then- i0 M3 j6 G) h+ ]
- rtx_led=$(expr $rtx / 4194304)( m h; a. w6 k5 j, d' c( ~: L
- set_led c1 0 0 I/ L6 [1 w# P
- set_led c2 0 0
1 Q3 P: ^; B' |- ^, c+ z3 u - set_led c3 $rtx_led 0: o0 M2 V M# ^5 G9 k: ?( [
- fi' ~9 d( ]1 e, ~! Z: W4 H
- echo $new_rtx >/root/rtx.log' A, [$ r# [4 }2 Y; s
- }
复制代码 这个只是显示下载网速的,如果想要显示上传网速也很简单,把第二行的$4改为$2就行了。, y: \* Y9 t' }, N1 ^2 ]
下面是完整脚本,看附件吧。
8 B( C5 h* R2 }: v一共有五个文件; K7 p( E, `8 t |8 x
- ledstatus.sh #放在/opt/bin文件夹下替换
. l5 R( I7 ?4 Y6 ~. V$ }2 m4 z8 @ - netspeed.py #放在root下 # _8 O8 [: b) {4 s4 B6 q7 [. g
- new.rt #放在root下
7 A, F' P4 d/ K1 g - mew.rtx #放在root下& J1 G/ R, H+ M% s
- rtx #放在root下
复制代码
4 ]7 t- S) ]9 [% U0 Y6 l1 c6 q% u3 q1 i1 K! _
led_control.zip
(1015 Bytes, 下载次数: 114)
* e1 `- ?; U" z; X% e+ i. }6 k( R解压密码(刮刮乐):chwhsen( Q3 i' _( g; |7 J0 D4 A# z
% s3 e8 S/ Z5 B0 N; e1 e5 ^0 j/ H# G r K& x( d
, ?( \( u( Y3 Y- u( c; Z |
评分
-
查看全部评分
|