#!/bin/bash
#date: 2020.04.02
#description: show the rate of system resources
# cpu资源信息统计
function show_cpu
{
cpu_rate=$(vmstat | awk 'NR == 3 {print $(NF-4) + $(NF-3)"%"}')
wait_io=$(vmstat | awk 'NR == 3 {print $(NF-1)"%"}')
echo -e "CPU -> 占用率:${cpu_rate}\t等待磁盘io:${wait_io}"
}
# 内存资源信息统计
function show_memory
{
memory_total=$(free -m | awk 'NR == 2 {printf "%.2f", $2/1024}')
memory_used=$(free -m | awk 'NR == 2 {print $3}')
memory_available=$(free -m | awk 'NR == 2 {print $NF}')
echo -e "内存 -> 总数:${memory_total}G\t已用:${memory_used}M\t可用:${memory_available}M"
}
# 磁盘资源信息统计
function show_disk
{
df -h | awk '/^\/dev/ {printf "磁盘 -> 挂载点:%s\t总数:%s\t已用:%s\t可用:%s\t使用率:%s\n", $NF, $2, $3, $4, $5}'
}
# 网络资源信息统计
function show_net
{
netstat -atnp | awk 'BEGIN{printf "\n网络 -> \n%-16s%s\n", "状态", "总数"} NR > 2 { STATUS[$6]++ } END{ for(i in STATUS) printf "%-16s%4s\n", i, STATUS[i] }'
}
# 实现菜单显示
function menu
{
echo -e "\n\t\t欢迎使用系统资源监测系统\t\t"
echo
echo -e "\t\t\t0、退出系统\t\t\t"
echo -e "\t\t\t1、CPU资源监测\t\t\t"
echo -e "\t\t\t2、内存资源监测\t\t\t"
echo -e "\t\t\t3、磁盘资源监测\t\t\t"
echo -e "\t\t\t4、网络资源监测\t\t\t"
}
# 1.定义入口函数
function main
{
# 2.判断用户输入
# while为无限循环
while :
do
menu
read -p "请输入0~4之间的数字:" num
# 3.根据用户选择的选项, 调用相应的函数
case "${num}" in
0)
echo -e "欢迎再次光临!"
break
;;
1)
show_cpu
;;
2)
show_memory
;;
3)
show_disk
;;
4)
show_net
;;
*)
;;
esac
done
}
main
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix