|
|
之前我们你已经说过了led管控机制
: \! R+ H1 s: y$ p0 _6 a6 ` 聊一聊x3p的LED控制机制% H$ |, d) a6 u7 N! t6 q
和用led来显示硬盘温度$ P4 l/ ~3 w1 A+ I8 B: w
让你的RGB灯来指示系统温度
$ |/ W7 m* o! l7 l" |4 E. c现在我们可以进一步让led来显示系统网速,且往下看
8 C* Q* @9 `) ?4 ^% H7 B8 K需要用到一个python脚本来获取系统的联网状态以及各个io状态
0 u+ R0 _: W1 S- import psutil
% v' `: k' M( z# D/ n - print(psutil.net_io_counters(pernic=True))
复制代码 输出结果是下面的8 k) Z" W! h$ w- h, m
- {! p. i& _5 ~/ I7 H! u
- 'bond0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
- G3 W2 B7 x1 r - 'lo': snetio(bytes_sent = 371531983, bytes_recv = 371531983, packets_sent = 649842, packets_recv = 649842, errin = 0, errout = 0, dropin = 0, dropout = 0),
5 d9 V0 d; \) h8 u5 J - 'tun0': snetio(bytes_sent = 300576, bytes_recv = 0, packets_sent = 9393, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),
) M+ L; R6 K+ J' j; Z* t, r - 'sit0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),: e: Q _' A4 N3 T1 }
- 'ip_vti0': snetio(bytes_sent = 0, bytes_recv = 0, packets_sent = 0, packets_recv = 0, errin = 0, errout = 0, dropin = 0, dropout = 0),+ E9 h4 R3 K& x; s$ j7 Z6 ?. {
- 'eth0': snetio(bytes_sent = 10911429402, bytes_recv = 387312110, packets_sent = 722569, packets_recv = 1194110, errin = 0, errout = 0, dropin = 5, dropout = 0)% S4 h7 m! d! H8 c
- }
复制代码 有了数据就能够处理数据转化为网速了。9 T3 R( B9 p5 k' Q0 J J7 D
" G, h0 f8 g' w {因为网速差别实在太大,所以我用了分级显示的方案:1 d) |7 j! o+ l) {6 S' L+ V
网速为B级别时显示红灯,网速越大,红灯越亮,不过放心,几乎看不到红灯
& _, q G7 P1 d: j网速为K级别时显示绿灯,网速越快,绿灯越绿。这个比较常见,几乎上硬盘待机时就一直是绿灯
Q/ A0 l( W& k1 L4 R网速为M级别时显示蓝灯,网速越高,蓝灯越艳丽,当你下载东西或者往硬盘传文件时就是蓝灯了。5 g+ ?" C& b* o G7 g0 d$ {9 o
- net_led_dn() {
: d7 t* ~( ^. w& G; J t# h+ ~2 Q - python /root/netspeed.py | sed -e "s/'/\n/g" -e 's/, /=/g' | grep } | awk -F '=' '{print $4}' >/root/new.rtx
" P2 H1 U+ L! f1 z& \( S0 E - new_rtx=$(cat /root/new.rtx)1 Q s" v7 A+ j7 W$ n# e8 x
- old_rtx=$(cat /root/rtx.log)
/ D4 o) x* h0 x6 o% ` @4 c% O - rtx=$(expr $new_rtx - $old_rtx)
; U. N( d* N, C4 i$ t0 K% f! [ - echo $rtx$ S/ R" {$ M! ?% D' Y) x
- if [ $rtx -lt 1024 ]; then
' R: L6 ^4 V- _9 ?0 L -
" D8 R) r+ U2 f' W4 G4 n# @ - rtx_led=$(expr $rtx / 4)1 z( N! X5 s4 U$ I
-
: V2 }' k E1 t7 \: X; L5 { - set_led c1 $rtx_led 0, m9 K" ?1 t$ g8 G- l/ j8 c
- set_led c2 0 0$ m! S7 r& {& ~
- set_led c3 0 0
1 f; q8 x# n4 s+ H -
: d. t9 u ~; ?( ^7 A% ^3 A6 r - elif [ $rtx -lt 1048576 ]; then
! O; x0 {, S* [; @. [$ O" Z - rtx_led=$(expr $rtx / 4096)8 F$ b' B4 t. O) b/ u
- set_led c1 0 0$ U0 O: r4 B. I/ `% o! D
- set_led c2 $rtx_led 0
) ]) J+ | ~# w" {, [$ j- b- X - set_led c3 0 0
0 B6 Y+ O A/ c; P - elif [ $rtx -lt 1073741824 ]; then
+ w- }4 c, i) v6 j - rtx_led=$(expr $rtx / 4194304)
- }9 F# N( c6 h+ R - set_led c1 0 0
% {. P$ c# C( x) r4 z - set_led c2 0 0
! Y' `5 O- k$ Z - set_led c3 $rtx_led 0$ k1 ~, i1 {0 D3 Y
- fi
6 S7 a M) k s0 @; V" ] - echo $new_rtx >/root/rtx.log
, z$ G; Q5 e$ b+ u - }
复制代码 这个只是显示下载网速的,如果想要显示上传网速也很简单,把第二行的$4改为$2就行了。
/ E2 W8 f# r0 L' }# f下面是完整脚本,看附件吧。
2 G' @8 h* z4 r; c2 E8 q一共有五个文件$ I/ N$ J. Y8 [2 ?7 I: C
- ledstatus.sh #放在/opt/bin文件夹下替换" S! u5 x3 i f3 ^4 Z# y
- netspeed.py #放在root下
) ^5 v8 u& }9 N& k/ G - new.rt #放在root下3 U" ?- g' _% N
- mew.rtx #放在root下
' h& o& G% R6 U - rtx #放在root下
复制代码 + L: }* N: L; K7 j, d
3 [* B6 w3 C! V/ H
led_control.zip
(1015 Bytes, 下载次数: 114)
( Y. Z+ u- Q: {: V( I3 W8 o6 l, X6 J解压密码(刮刮乐):chwhsen% i0 O9 B) `% A- L- i6 r
7 F0 x: B- n) U
" Z, z5 |0 b3 `6 g1 H9 H0 k) W# d3 ^, a% l1 z- F
|
评分
-
查看全部评分
|