这个教程主要实现了以下几个功能:基于 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 "==============================================================================="