在OpenWrt中实现定时监控CPU和硬盘温度等数据

这个教程主要实现了以下几个功能:基于 openWrt 系统

1. 获取并打印 CPU 温度。

2. 获取并打印硬盘 /dev/nvme0n1 的模型信息和温度。

3. 获取并打印硬盘 /dev/nvme1n1 的模型信息和温度。

4. 获取并打印 CPU 使用率。

5. 获取并打印内存使用率。

6. 获取并打印上行和下行的网络流量速度。

7. 所有的结果都将按照一定的格式输出,包含了当前的日期和时间。

包括 CPU 温度、CPU 使用率、内存使用率、硬盘信息和网络流量等。这些信息对于了解和监控系统的运行状态非常有用。

加上系统的 crontab 定期执行.

#!/bin/ash

# 获取 CPU 温度
cpu_temp=$(cat /sys/class/thermal/thermal_zone*/temp | awk '{printf "%.2f\n", $1/1000}')

# 获取 /dev/nvme0n1 硬盘信息
nvme0_info=$(lsblk -d -o name,model -w 40 | awk '/nvme0n1/ {print $2}')
nvme0_temp=$(smartctl -a /dev/nvme0n1 | awk -F':' '/Temperature:/ {print $2}' | awk '{print $1}')

# 获取 /dev/nvme1n1 硬盘信息
nvme1_info=$(lsblk -d -o name,model -w 40 | awk '/nvme1n1/ {print $2}')
nvme1_temp=$(smartctl -a /dev/nvme1n1 | awk -F':' '/Temperature:/ {print $2}' | awk '{print $1}')

# 获取 CPU 使用率
cpu_usage=$(top -bn1 | grep "CPU:" | awk '{print $2}' | head -n 1)

# 获取内存使用率
mem_usage=$(free | awk '/Mem/{printf("%.2f%"), $3/$2*100}')

# 获取上下行流量速度
traffic=$(vnstat -i br-lan -tr 2 | awk -F';' '/rx/ {printf "Rx: %.2f Mbps, ", $2+0.5} /tx/ {printf "Tx: %.2f Mbps", $2+0.5}')

# 输出结果
echo ""
echo "==============================================================================="
echo "                                $(date '+%Y-%m-%d %H:%M:%S')                                "
echo "==============================================================================="
echo "CPU Temperature: $cpu_temp°C"
echo "CPU Usage: $cpu_usage"
echo "Memory Usage: $mem_usage"
echo "/dev/nvme0n1: $nvme0_info, Temperature: $nvme0_temp°C"
echo "/dev/nvme1n1: $nvme1_info, Temperature: $nvme1_temp°C"
echo "Network Traffic: $traffic"
echo "==============================================================================="

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值