|
|
之前我们你已经说过了led管控机制
2 v. V4 Y' ~" Q8 l" s1 @ 聊一聊x3p的LED控制机制
6 z( R2 t8 a1 t和用led来显示硬盘温度
1 M% V, q5 l. _6 v" Y让你的RGB灯来指示系统温度
- v( T( T' q; O( S& o! |现在我们可以进一步让led来显示系统网速,且往下看( i. }0 v. w0 d# N. e! W: J
需要用到一个python脚本来获取系统的联网状态以及各个io状态
) C$ k& d, {6 e5 D. p) o8 x- import psutil
( e/ }: }5 L ^. A% B& A - print(psutil.net_io_counters(pernic=True))
复制代码 输出结果是下面的
* V( Q, E- x. m3 t9 m! D- {: N/ p, t) K* H
- 'bond0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
D) T$ v* T9 t - 'lo': snetio(bytes_sent = 371531983, bytes_recv = 371531983, packets_sent = 649842, packets_recv = 649842, errin = 0, errout = 0, dropin = 0, dropout = 0),& O% ~" w& a# N; i8 q
- 'tun0': snetio(bytes_sent = 300576, bytes_recv = 0, packets_sent = 9393, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),! L5 z T8 z! K7 \0 c+ m' e
- 'sit0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0)," s6 d' c* m& H" u: b
- 'ip_vti0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
/ W9 N1 N" J8 P0 Q5 N9 I) o - 'eth0': snetio(bytes_sent = 10911429402, bytes_recv = 387312110, packets_sent = 722569, packets_recv = 1194110, errin = 0, errout = 0, dropin = 5, dropout = 0)
P3 B6 ]" u8 x: x+ { - }
复制代码 有了数据就能够处理数据转化为网速了。2 L6 ^; P0 l& E5 T' Q
. ?; D4 U/ `! T
因为网速差别实在太大,所以我用了分级显示的方案:$ ?) f6 u+ ]. G: s4 D
网速为B级别时显示红灯,网速越大,红灯越亮,不过放心,几乎看不到红灯
. x8 l5 @. l6 z' V0 M网速为K级别时显示绿灯,网速越快,绿灯越绿。这个比较常见,几乎上硬盘待机时就一直是绿灯! _4 d7 a: d* D0 @9 A
网速为M级别时显示蓝灯,网速越高,蓝灯越艳丽,当你下载东西或者往硬盘传文件时就是蓝灯了。
3 U9 [* {2 c* m) e& U- J9 h6 Q4 \- net_led_dn() {, q6 D) Y, K* S# h1 }
- python /root/netspeed.py | sed -e "s/'/\n/g" -e 's/, /=/g' | grep } | awk -F '=' '{print $4}' >/root/new.rtx" z( @ w" c# h4 f3 S6 P
- new_rtx=$(cat /root/new.rtx)
5 Y% V8 l F0 V - old_rtx=$(cat /root/rtx.log)* t3 X- |& ~; l7 a
- rtx=$(expr $new_rtx - $old_rtx)
9 Z: f, ~. K8 e1 f- C% d - echo $rtx3 O/ f/ `3 Z. @. j
- if [ $rtx -lt 1024 ]; then4 y1 r" K4 U4 ]+ H& r" c7 o
-
- p2 X2 i8 w0 g7 F6 x! q - rtx_led=$(expr $rtx / 4), x2 B. x" i2 M7 r
-
# X% y4 q2 L+ s# }! i! U0 V - set_led c1 $rtx_led 0' J' r6 Z: _; S* X. w- n- \
- set_led c2 0 04 O* I' ?$ ?0 X4 b1 }1 K, |
- set_led c3 0 0
- d- ]8 M# |. p/ u+ m -
6 g$ c" n9 j& \- G - elif [ $rtx -lt 1048576 ]; then* u8 E/ v" d& ^ ]$ [
- rtx_led=$(expr $rtx / 4096)
' m3 x) Q: B0 Y% n% g - set_led c1 0 02 S: Q7 d. c. o1 F" I
- set_led c2 $rtx_led 04 G4 h) E- F& p- f
- set_led c3 0 0
) S0 ~. n, O8 } - elif [ $rtx -lt 1073741824 ]; then
! c) R _6 }) x0 g - rtx_led=$(expr $rtx / 4194304)
r* h5 K: w* w; x8 w6 X - set_led c1 0 0% J3 j" H9 O" e; x. A f; m( \, I6 p
- set_led c2 0 0$ y$ D* f3 ?4 L$ o U
- set_led c3 $rtx_led 04 w' { E: Y+ V' Z
- fi1 f# _' A% l0 ]' C9 T3 T! d& J
- echo $new_rtx >/root/rtx.log9 C+ z3 `: h6 I; S4 m- f
- }
复制代码 这个只是显示下载网速的,如果想要显示上传网速也很简单,把第二行的$4改为$2就行了。
6 I) J( E9 Q, _+ B* y4 V下面是完整脚本,看附件吧。
( L; N( b4 O* I. |% M5 y/ C1 X# H* G一共有五个文件% n9 [+ i6 s4 E+ a0 b X8 t, ^
- ledstatus.sh #放在/opt/bin文件夹下替换
! Z! D6 [" H# C. p( s( S - netspeed.py #放在root下
* _" a N/ u" U$ [ - new.rt #放在root下
5 k/ B5 I7 h c% n$ H3 l& J; c4 p - mew.rtx #放在root下3 t& T4 E& g; b( S6 N5 p% S
- rtx #放在root下
复制代码
$ |" _, R% S. w$ W8 B% m' i$ E/ u
0 G( s6 e% ?, a2 H {: ?8 D
led_control.zip
(1015 Bytes, 下载次数: 114)
1 P$ j& K) X! {7 J6 Y" C# [+ ]4 i
解压密码(刮刮乐):chwhsen! R6 i* t) \$ l8 p& f( i
5 q+ t0 G0 @: ] h, M0 P/ g3 Q0 `4 _" F6 T ]$ U5 H
! b) _& t+ R& u0 c l |
评分
-
查看全部评分
|