OpenWrt—系统状态监控脚本

发布于 2020-07-13  473 次阅读


前言

前几天,本来想在路由器上装个tty228大大的luci-app-serverchan进行状态监控,结果发现其是基于ARM架构的 :cry: ,而某粗粮R3G的MT7621是MIPS架构的,于是乎,就根据其原理写了个理论上openwrt通用的监控脚本 :cool:

主要功能

  • 自动获取路由ip/ipv6地址
  • 支持双拨显示
  • 设备型号
  • 设备重启自动推送
  • 设备各接口流量使用情况
  • CPU 负载、软中断、内存使用率、平均负载 显示

注意:此脚本是针对pppoe拨号方式编写的,DHCP、静态类上网方式可能会显示错误,请见谅!

获取SCKEY

点击此处获取

代码

将SCKEY改成你的即可

SCKEY=SCU104309T2b02eb37b57d7f96abcd60a95bb748e15f008e234a049
cpu=$(top -n 1 |awk NR==2 |awk '{print $8}'| sed 's/%//')
sirq=$(top -n 1 |awk NR==2 |awk '{print $14}')
let cpu_used=100-$cpu
addr="https://sc.ftqq.com/$SCKEY.send" 
title="Route Status" 
text="系统负载:"
load=$(cat /proc/loadavg) 
drive=$(cat /proc/cpuinfo |grep 'machine' | sed s/[[:space:]]//g |sed  "s:machine::" |sed  's/://')
memry="内存信息:"
memto=$(cat /proc/meminfo | grep MemTotal)
memfree=$(cat /proc/meminfo | grep MemFree)
memava=$(cat /proc/meminfo | grep MemAvailable)
wan=$(ifconfig pppoe-wan |awk NR==2 |awk -F '[-:]+' '{print $2}'|sed 's/P//')
lan=$(ifconfig br-lan |awk NR==2 |awk -F '[-:]+' '{print $2}'|sed 's/P//'|sed 's/Bcast//')
lan_6=$(ifconfig br-lan |awk NR==3 |sed 's/Scope:Global//' |sed s/[[:space:]]//g |sed 's/inet6addr://')
lan2_6=$(ifconfig br-lan |awk NR==5 |sed 's/Scope:Global//' |sed s/[[:space:]]//g |sed 's/inet6addr://')
lan_rxtx=$(ifconfig br-lan |awk NR==10)
wan_6=$(ifconfig pppoe-wan |awk NR==3 |sed 's/Scope:Link//' |sed s/[[:space:]]//g |sed 's/inet6addr://')
wan2_6=$(ifconfig pppoe-WAN2 |awk NR==3 |sed 's/Scope:Link//' |sed s/[[:space:]]//g |sed 's/inet6addr://')
wan2=$(ifconfig pppoe-WAN2 |awk NR==2|awk -F '[-:]+' '{print $2}'|sed 's/P//' )
type=$(ifconfig pppoe-wan |awk NR==1 |sed 's/Link encap//' |sed 's/://' |sed 's/pppoe-wan//' |sed s/[[:space:]]//g)
type2=$(ifconfig pppoe-WAN2 |awk NR==1 |sed 's/Link encap//' |sed 's/://' |sed 's/pppoe-WAN2//' |sed s/[[:space:]]//g)
type3=$(ifconfig br-lan |awk NR==1 |sed 's/Link encap//' |sed 's/://' |sed 's/br-lan//' |sed s/[[:space:]]//g |sed 's/HWaddr//' |sed 's/34:CE:00:65:06:44//')
wan_rxtx=$(ifconfig pppoe-wan |awk NR==8)
wan2_rxtx=$(ifconfig pppoe-WAN2 |awk NR==8)
curl -d "text=$title&desp=
系统信息
--
设备名称:
$drive

CPU使用率: $cpu_used%

软中断: $sirq

系统负载:

$load

$memry

$memto

$memfree

$memava

网络信息
--
###WAN:

链接类型:$type

IPv4地址:$wan

IPv6地址:

$wan_6

发送接收量:

$wan_rxtx

###WAN2:

链接类型:$type2

IPv4地址:$wan2

IPv6地址:

$wan2_6

发送接收量:

$wan2_rxtx

###LAN:

链接类型:$type3

IPv4地址:$lan

IPv6地址:

$lan_6

$lan2_6

发送接收量:

$lan_rxtx


" $addr > /dev/null 2>&1 /send text to wechat

End

本文写的比较急,如有不完善的地方请见谅! :grin:


世界上本没有博客,直到有了程序员