不管是运维服务器、调试开发环境,还是日常管理Linux主机,登录后第一时间想知道硬件负载是刚需:CPU有没有飙高、内存剩多少、各个磁盘分区会不会爆满、多块硬盘的挂载状态是否正常……
如果每次都手动敲 top、free -h、df -h、lsblk 挨个查,不仅打断工作节奏,多盘场景下还要反复筛选信息,效率极低。
其实只需一行配置+一个极简脚本,就能实现登录Linux时,自动打印CPU、内存、多盘使用率的可视化信息,开机即看、一目了然,直接把资源排查效率拉满。
本次方案全程使用Linux原生自带工具,无需安装额外软件,兼容CentOS、Ubuntu、Debian、Rocky Linux等所有主流发行版,核心用到3类命令:
- • CPU监控:
top/mpstat 提取CPU负载、核心使用率 - • 内存监控:
free -h 格式化展示总内存、已用、空闲、缓存 - • 多盘监控:
df -h 筛选有效磁盘分区,lsblk 展示物理硬盘挂载状态
通过编写Bash脚本整合这些命令,再配置到登录自启文件,实现登录终端时自动执行、自动展示。
1、编写资源监控脚本
先创建专属监控脚本,建议存放在 /usr/local/bin/ 目录(全局可调用),命名为sys-monitor.sh。
### /usr/local/bin/sys-monitor.sh
#!/bin/bash
# Linux登录自动监控脚本:CPU+内存+多盘使用率展示
# 清屏+打印标题
clear
echo -e "\033[32m=============================================\033[0m"
echo -e "\033[32m Linux 系统资源实时监控 \033[0m"
echo -e "\033[32m=============================================\033[0m"
echo -e "\033[33m当前登录时间:\033[0m $(date "+%Y-%m-%d %H:%M:%S")"
echo -e "\033[33m主机名:\033[0m $(hostname)"
echo -e ""
# CPU使用率展示
echo -e "\033[36m========== CPU 核心使用率 ==========\033[0m"
top -bn1 | grep "Cpu(s)" | sed "s/^/CPU负载: /"
echo -e "CPU核心数:$(grep -c 'processor' /proc/cpuinfo)"
echo -e ""
# 内存使用率展示
echo -e "\033[36m========== 内存使用情况 ==========\033[0m"
free -h | awk 'NR==1{print "类型\t总内存\t已用\t空闲\t缓存"} NR==2{print $1"\t"$2"\t"$3"\t"$4"\t"$6}'
echo -e ""
# 多盘磁盘使用率(过滤tmpfs、sr0等无用分区)
echo -e "\033[36m========== 多盘分区使用情况 ==========\033[0m"
df -h | grep -E '^/dev/(sd|vd|nvme)' | awk 'BEGIN{print "磁盘分区\t总容量\t已用\t可用\t使用率\t挂载点"} {printf "%-10s\t%-6s\t%-4s\t%-4s\t%-5s\t%-10s\n",$1,$2,$3,$4,$5,$6}'
echo -e ""
# 物理硬盘挂载状态(多盘排查必备)
echo -e "\033[36m========== 物理硬盘挂载信息 ==========\033[0m"
lsblk -d -o NAME,SIZE,TYPE,MODEL | grep "disk"
echo -e "\033[32m=============================================\033[0m"
echo -e ""
2、赋予脚本执行权限
chmod +x /usr/local/bin/sys-monitor.sh
3、配置登录自动执行
Linux登录时会加载环境变量配置文件,只需把脚本调用命令写入配置文件,即可实现自启,分两种场景配置:
当前用户登录生效
编辑当前用户的.bashrc 文件(仅当前用户登录展示):
vim ~/.bashrc
# 登录自动展示系统资源
/usr/local/bin/sys-monitor.sh
source ~/.bashrc
所有用户登录生效
若需要所有用户登录Linux都展示资源信息,编辑全局配置文件/etc/profile
4、测试验证
退出当前终端,重新登录Linux,即可看到自动弹出的CPU、内存、多盘监控信息,无需手动敲任何命令,资源状态一目了然。
=============================================
Linux 系统资源实时监控
=============================================
当前登录时间: 2026-03-23 14:59:39
主机名: worker03
========== CPU 核心使用率 ==========
CPU负载: %Cpu(s): 2.2 us, 13.0 sy, 0.0 ni, 84.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
CPU核心数:2
========== 内存使用情况 ==========
类型 总内存 已用 空闲 缓存
Mem: 3.6Gi 400Mi 3.2Gi 232Mi
========== 多盘分区使用情况 ==========
磁盘分区 总容量 已用 可用 使用率 挂载点
/dev/sda2 960M 248M 713M 26% /boot
/dev/sda1 599M 7.1M 592M 2% /boot/efi
========== 物理硬盘挂载信息 ==========
sda 40G disk QEMU HARDDISK
=============================================