|
|
之前我们你已经说过了led管控机制 w3 i& w7 i7 T% u
聊一聊x3p的LED控制机制4 b5 d$ j6 L% ^8 U4 m. g& U! l
和用led来显示硬盘温度! T; z7 I7 k Z" x
让你的RGB灯来指示系统温度
3 C3 |; C- D, V( Q2 M+ q6 U4 ?现在我们可以进一步让led来显示系统网速,且往下看
- t, w, a$ d: ]7 V需要用到一个python脚本来获取系统的联网状态以及各个io状态
& L* z+ y/ S; E; ]; U- import psutil
7 z) [ T' r0 P! G3 U( L - print(psutil.net_io_counters(pernic=True))
复制代码 输出结果是下面的
8 J: Q1 @. L8 G- s% ^- {8 n6 h! G1 y, G- z8 P; {- k' z5 _
- 'bond0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),! J: U9 h, w, d+ n }
- 'lo': snetio(bytes_sent = 371531983, bytes_recv = 371531983, packets_sent = 649842, packets_recv = 649842, errin = 0, errout = 0, dropin = 0, dropout = 0),4 A9 ^# n$ x1 Z( G
- 'tun0': snetio(bytes_sent = 300576, bytes_recv = 0, packets_sent = 9393, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),/ Z0 }3 q& c, B3 V7 c, X1 E
- 'sit0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),8 K4 `2 l0 M+ L4 x0 `0 }
- 'ip_vti0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),6 B- V! S7 s4 |; B* c) _; f
- 'eth0': snetio(bytes_sent = 10911429402, bytes_recv = 387312110, packets_sent = 722569, packets_recv = 1194110, errin = 0, errout = 0, dropin = 5, dropout = 0)
5 T' m8 X, L/ k. G! j" T* ?. Y - }
复制代码 有了数据就能够处理数据转化为网速了。
+ Q4 J+ L- ?7 O! K: v
4 Z8 P: A T( R9 _0 K; d* i4 v" F因为网速差别实在太大,所以我用了分级显示的方案:
8 q5 I3 N- I C7 X+ ?1 q, c N网速为B级别时显示红灯,网速越大,红灯越亮,不过放心,几乎看不到红灯5 z+ ?: Y4 h8 l) ^0 ^6 D, u5 ]
网速为K级别时显示绿灯,网速越快,绿灯越绿。这个比较常见,几乎上硬盘待机时就一直是绿灯% `- @! M$ n9 z5 ] K
网速为M级别时显示蓝灯,网速越高,蓝灯越艳丽,当你下载东西或者往硬盘传文件时就是蓝灯了。/ e1 d1 q# O9 q, D
- net_led_dn() {1 u1 N0 B/ ~$ M/ r/ ^, J' n
- python /root/netspeed.py | sed -e "s/'/\n/g" -e 's/, /=/g' | grep } | awk -F '=' '{print $4}' >/root/new.rtx- r- f5 ]; P! z$ Z) N' Y
- new_rtx=$(cat /root/new.rtx)
$ F! o3 n! H, Q. c+ T9 r* X6 ^ - old_rtx=$(cat /root/rtx.log)5 P0 [! a# o3 r) L8 [
- rtx=$(expr $new_rtx - $old_rtx)
& E8 z/ [6 n/ U" i7 Z) F - echo $rtx& F+ J! B8 x( ^ h, ^
- if [ $rtx -lt 1024 ]; then9 f4 N# q6 X/ V" h9 r8 L" J
- # w" l- ~; N8 r( F: u
- rtx_led=$(expr $rtx / 4)
4 m0 D4 A- K0 y3 n$ o% t) | -
: t6 h& c V! h1 |# s2 J - set_led c1 $rtx_led 0
" K$ X T$ J& ?# Q$ i7 E, a4 R - set_led c2 0 0
1 w- E- w f# m* t6 Q1 } - set_led c3 0 01 a. P5 y8 m' X1 t7 W+ P
-
6 y$ K, [. g# Q. @ t' y - elif [ $rtx -lt 1048576 ]; then6 E7 Y9 A3 n: ]% \
- rtx_led=$(expr $rtx / 4096)) E; ^! v/ o4 T' C
- set_led c1 0 0- z$ C1 u( p$ j* x
- set_led c2 $rtx_led 0
4 |( k' u. h9 H9 J& ] - set_led c3 0 08 |' @3 w$ ^, D* a8 q
- elif [ $rtx -lt 1073741824 ]; then/ l+ {# r! f) t3 \8 f
- rtx_led=$(expr $rtx / 4194304)9 y' S: ]4 g1 Q ^2 o' W
- set_led c1 0 09 {: ?! l- i4 d6 \' B! O
- set_led c2 0 0
" y8 x" ?" d- d- W% I - set_led c3 $rtx_led 0
; Q" a- \2 s+ X8 y. Z - fi
1 C6 T7 i% s* ]# X7 ~3 j9 Q - echo $new_rtx >/root/rtx.log& V- L+ h5 f* O+ o' ^
- }
复制代码 这个只是显示下载网速的,如果想要显示上传网速也很简单,把第二行的$4改为$2就行了。; \0 f- ~6 p" ]
下面是完整脚本,看附件吧。
5 Z6 u! c" Q% M" J- m7 h一共有五个文件% b/ B# h; h8 U5 A
- ledstatus.sh #放在/opt/bin文件夹下替换, U; u6 K- r( a+ q+ h4 }, V
- netspeed.py #放在root下 / X5 @2 g% B0 u2 x8 w
- new.rt #放在root下! G* ]7 e% v f' @2 J
- mew.rtx #放在root下5 M, }: R$ }6 J5 `
- rtx #放在root下
复制代码 $ B$ w6 z9 w. R( Q! }5 _
1 @1 c" o; m+ b3 Z% ]9 m4 }
led_control.zip
(1015 Bytes, 下载次数: 114)
$ F! `: D& y) o. w6 x4 T
解压密码(刮刮乐):chwhsen
% ^, A! V+ U" ^: v# a. |, r
! X" f3 y: u8 m& Q) h4 y% n
2 ]1 A/ g( ]' J* s$ y% T- t& ?
5 i ~% B! C. V# | |
评分
-
查看全部评分
|