当前位置:首页>Linux>让Linux主动汇报全身状态

让Linux主动汇报全身状态

  • 2026-09-08 13:56:29
让Linux主动汇报全身状态

不管是运维服务器、调试开发环境,还是日常管理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
=============================================

最新文章

随机文章