找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2158

积分

0

好友

292

主题
发表于 11 小时前 | 查看: 2| 回复: 0

你是否厌倦了每次登录 Linux 服务器后,手动输入一串命令来查看系统资源状态?分享一个实用的 Bash 脚本,只需一次配置,即可在每次登录时自动展示核心系统信息,让服务器状态一目了然。

更重要的是,这个脚本开箱即用,并且完全支持自定义修改,以满足你的特定监控需求。

效果展示

配置完成后,登录服务器时将自动显示类似下图的系统概览:

Linux登录后自动展示系统监控信息的效果截图

所有关键指标如 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 中的脚本仅影响当前用户,建议不要将对所有用户有影响的逻辑写入其中。

脚本扩展思路

此脚本的核心价值在于其可定制性。你不仅可以展示基本的系统信息,还可以根据需要扩展其功能。

例如,你可以修改脚本,使其在登录时自动展示本服务器上部署的应用信息,比如应用的部署路径、监听的端口号、服务状态等。这对于快速熟悉新接手的环境或进行日常巡检非常有帮助。

欢迎在 云栈社区 分享你的自定义脚本和经验。




上一篇:英伟达Vera Rubin如何用HBM4、LPDDR5X和DPU重构AI存储架构
下一篇:i5-7Y54迷你主机体验:4.5W功耗能否胜任飞牛OS与软路由?
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-18 18:13 , Processed in 0.708760 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表