Linux运维函数check_mem、check_disk、check_cpu分别检查内存(用available列)、磁盘(跳过虚拟文件系统)和CPU负载及Top3进程,sys_inspect整合巡检并输出带时间戳报告。

在 Linux 中编写检查系统资源占用的运维函数,核心是封装常用命令(如 free、df、ps、top 的轻量替代)输出,提取关键指标并做简单判断,避免依赖外部工具或复杂逻辑,确保函数可直接放入 ~/.bashrc 或运维脚本中复用。
内存使用率检查函数
用 free -m 提取已用内存与总内存,计算百分比,避免被缓存干扰(推荐用 available 列):
check_mem() {
local used=$(free | awk 'NR==2{print $3}')
local total=$(free | awk 'NR==2{print $2}')
local percent=$((used * 100 / total))
echo "内存使用: ${used}MB / ${total}MB (${percent}%)"
[[ $percent -gt 85 ]] && echo "⚠️ 内存告警:超过 85%" >&2
}磁盘空间检查函数
针对根分区或指定路径,用 df -h 过滤并提取使用率,跳过 tmpfs/overlay 等虚拟文件系统:
check_disk() {
local path="${1:-/}"
local usage=$(df "$path" | tail -1 | awk '{print $5}' | sed 's/%//')
local mounted=$(df "$path" | tail -1 | awk '{print $1}')
echo "磁盘 $mounted 使用率: ${usage}%"
[[ $usage -gt 90 ]] && echo "⚠️ 磁盘告警:$path 使用超 90%" >&2
}CPU 负载与高耗时进程检查
不依赖 top(交互式),改用 uptime 看平均负载,并用 ps 找 CPU 占用前 3 的进程:
check_cpu() {
local load=$(uptime | awk -F'load average:' '{print $2}' | awk '{print $1}' | sed 's/,//')
echo "当前 1分钟负载: $load"
echo "CPU 占用 Top3:"
ps -eo pid,%cpu,comm --sort=-%cpu | head -n 4 | tail -n 3
}整合为一键巡检函数
把上面几个函数组合,加时间戳和分隔线,适合定时任务或手动快速排查:
sys_inspect() {
echo "=== 系统资源巡检 $(date +%F\ %T) ==="
check_mem
check_disk
check_cpu
echo "====================================="
}加载后执行 sys_inspect 即可输出简洁报告。如需静默判断,可在函数内加返回值(例如内存超阈值返回 1),供监控脚本调用。


















