你是否厌倦了每次登录 Linux 服务器后,手动输入一串命令来查看系统资源状态?分享一个实用的 Bash 脚本,只需一次配置,即可在每次登录时自动展示核心系统信息,让服务器状态一目了然。
更重要的是,这个脚本开箱即用,并且完全支持自定义修改,以满足你的特定监控需求。
效果展示
配置完成后,登录服务器时将自动显示类似下图的系统概览:

所有关键指标如 IP 地址、CPU 与内存使用率、系统负载、运行时间以及各磁盘分区的使用情况都清晰呈现。这能极大提升你对服务器健康状态的掌控感,省去反复输入检查命令的繁琐步骤。
实现脚本
1. 创建脚本文件
使用文本编辑器(如 vi)在指定目录创建脚本文件:
vi /etc/profile.d/sysinfo.sh
2. 编写脚本内容
将以下代码复制到 sysinfo.sh 文件中:
#!/bin/bash
# 颜色定义
GREEN="\033[1;32m"
YELLOW="\033[1;33m"
CYAN="\033[1;36m"
RESET="\033[0m"
# 获取基本信息
HOSTNAME=$(hostname)
UPTIME=$(uptime -p | sed 's/up //')
LOADAVG=$(uptime | awk -F'load average:' '{print $2}' | sed 's/^ //')
# 内存信息
read MEM_TOTAL MEM_USED <<<$(free -m | awk '/Mem:/ {print $2, $3}')
MEM_PCT=$((MEM_USED * 100 / MEM_TOTAL))
# IP地址
IP_ADDR=$(hostname -I | awk '{print $1}')
# CPU 使用率(通过top命令获取)
CPU_IDLE=$(top -bn2 | grep "Cpu(s)" | tail -n1 | awk -F',' '{print $4}' | grep -o '[0-9.]*')
CPU_USAGE=$(awk "BEGIN {printf \"%.0f\", 100 - $CPU_IDLE}")
# 输出系统信息概览
echo -e "\n${GREEN}恭喜你成功登录系统,先了解一下系统信息吧!${RESET}"
echo -e "${YELLOW}---------------------------------------------${RESET}"
printf "| %-8s | %-30s |\n" "资源 " " 使用情况"
printf "|----------|--------------------------------|\n"
printf "| %-8s | %-30s |\n" "IP地址 " "$IP_ADDR"
printf "| %-8s | %-30s |\n" "CPU" "$CPU_USAGE%"
printf "| %-8s | %-30s |\n" "内存 " "${MEM_USED}MB / ${MEM_TOTAL}MB (${MEM_PCT}%)"
printf "| %-8s | %-30s |\n" "负载情况" "$LOADAVG"
printf "| %-8s | %-30s |\n" "运行时长" "$UPTIME"
echo -e "${YELLOW}---------------------------------------------${RESET}"
echo -e "${CYAN}磁盘挂载信息${RESET}"
echo -e "${YELLOW}-------------------------------------------------${RESET}"
# 打印磁盘使用情况(排除 tmpfs 和 devtmpfs 等虚拟文件系统)
printf "| %-10s | %-10s | %-10s | %-6s |\n" "Mount" "Used" "Total" "Usage"
printf "|------------|------------|------------|--------|\n"
df -h -x tmpfs -x devtmpfs | awk 'NR>1 {
printf "| %-10s | %-10s | %-10s | %-6s |\n", $6, $3, $2, $5
}'
echo -e "${YELLOW}-------------------------------------------------${RESET}"
echo -e "${GREEN}开始你的表演,操作需谨慎,勿当背锅侠!${RESET}\n"
这个脚本通过一系列标准的 Linux 命令收集信息,并用格式化的方式输出,使得 系统监控和运维自动化 的初步工作变得非常简单。
运行脚本
创建脚本文件后,需要为其添加可执行权限:
chmod +x /etc/profile.d/sysinfo.sh
完成此步骤后,无论是通过 SSH 远程登录,还是在本地打开 TTY 或 Shell,系统都会自动执行这个脚本,并展示这份清晰美观的资源状态清单。
注意事项与自定义
脚本需要放置在系统或 Shell 的自动执行目录下。不同的生效范围,路径选择如下:
| 目标 |
建议路径 |
| 全系统所有用户生效 |
/etc/profile.d/sysinfo.sh |
| 仅对当前用户生效 |
~/.bash_profile 或 ~/.bashrc |
| 非 bash 用户(如 zsh) |
~/.zshrc 或 /etc/zsh/zshrc |
| 希望脚本风格清晰,便于集中管理 |
/etc/profile.d/ 目录 |
其他重要的配置点:
/etc/profile.d/ 目录下的脚本必须是可执行文件,并且通常以 .sh 结尾。
~/.bashrc 和 ~/.bash_profile 中的脚本仅影响当前用户,建议不要将对所有用户有影响的逻辑写入其中。
脚本扩展思路
此脚本的核心价值在于其可定制性。你不仅可以展示基本的系统信息,还可以根据需要扩展其功能。
例如,你可以修改脚本,使其在登录时自动展示本服务器上部署的应用信息,比如应用的部署路径、监听的端口号、服务状态等。这对于快速熟悉新接手的环境或进行日常巡检非常有帮助。
欢迎在 云栈社区 分享你的自定义脚本和经验。
|