IDA远程调试Linux ELF实战:从环境搭建到网络排障全解析
2026/4/25 1:46:18
在日常运维或开发过程中,你是否总觉得自己的服务器缺了点“专业感”?明明功能正常,但登录后光秃秃的命令行、毫无辨识度的提示,既不美观也不实用。今天分享一个超简单的小技巧——自定义服务器登录欢迎界面(MOTD)+ 系统状态看板,几行代码就能让你的服务器瞬间“高大上”,还能直观展示核心运行信息,兼顾颜值与实用!我们要实现的效果是:当你通过 SSH 登录服务器时,不再是单调的命令行提示符,而是先展示包含服务器名称、IP、CPU/内存/磁盘使用率、负载等关键信息的可视化欢迎界面,既提升辨识度,又能快速掌握服务器状态。
核心实现方式:
创建/usr/local/bin/server-dashboard.sh文件,内容如下(支持 CentOS/Ubuntu 主流系统):
#!/bin/bash# 服务器状态看板 - 自定义登录欢迎界面脚本# 作者:技术运维笔记# 适用系统:CentOS 7+/Ubuntu 18.04+# 关闭脚本执行过程中的错误输出(避免干扰界面展示)exec2>/dev/null# ==================== 定义颜色常量(提升界面美观度)====================RED='\033[0;31m'GREEN='\033[0;32m'YELLOW='\033[0;33m'BLUE='\033[0;34m'PURPLE='\033[0;35m'CYAN='\033[0;36m'WHITE='\033[0;37m'NC='\033[0m'# 重置颜色# ==================== 获取系统核心信息 ====================# 1. 服务器基础信息HOSTNAME=$(hostname)IP_ADDR=$(hostname-I|awk'{print $1}')# 获取主网卡IPOS=$(cat/etc/os-release|grepPRETTY_NAME|cut-d=-f2|sed's/"//g')UPTIME=$(uptime-p|sed's/up //')# 运行时长# 2. CPU 信息CPU_CORES=$(grep-c ^processor /proc/cpuinfo)# CPU核心数CPU_USAGE=$(top-bn1|grep"Cpu(s)"|sed"s/.*, *\([0-9.]*\)%* id.*/\1/"|awk'{print 100 - $1}')# CPU使用率CPU_USAGE=$(printf"%.1f"$CPU_USAGE)# 保留1位小数# 3. 内存信息MEM_TOTAL=$(free-h|grepMem|awk'{print $2}')# 总内存MEM_USED=$(free-h|grepMem|awk'{print $3}')# 已用内存MEM_USAGE=$(free|grepMem|awk'{print $3/$2 * 100.0}'|awk'{printf "%.1f", $0}')# 内存使用率# 4. 磁盘信息(根目录)DISK_TOTAL=$(df-h /|grep/|awk'{print $2}')# 总磁盘空间DISK_USED=$(df-h /|grep/|awk'{print $3}')# 已用磁盘空间DISK_USAGE=$(df-h /|grep/|awk'{print $5}'|sed's/%//g')# 磁盘使用率# 5. 系统负载(1分钟/5分钟/15分钟)LOAD_AVG=$(uptime|awk-F'load average:''{print $2}'|sed's/ //g')# ==================== 格式化输出界面 ====================clear# 清屏,让界面更整洁echo-e"${PURPLE}=====================================================${NC}"echo-e"${CYAN}🚀${HOSTNAME}- 服务器状态看板 🚀${NC}"echo-e"${PURPLE}=====================================================${NC}"echo-e"${WHITE}📌 服务器IP:${GREEN}$IP_ADDR${NC}"echo-e"${WHITE}📌 系统版本:${GREEN}$OS${NC}"echo-e"${WHITE}📌 运行时长:${GREEN}$UPTIME${NC}"echo-e"${PURPLE}-----------------------------------------------------${NC}"echo-e"${WHITE}🖥️ CPU 信息:${GREEN}$CPU_CORES核${NC}|${WHITE}使用率:${CYAN}$CPU_USAGE%${NC}"echo-e"${WHITE}🧠 内存信息:${GREEN}$MEM_USED/$MEM_TOTAL${NC}|${WHITE}使用率:${CYAN}$MEM_USAGE%${NC}"echo-e"${WHITE}💽 磁盘信息:${GREEN}$DISK_USED/$DISK_TOTAL${NC}|${WHITE}使用率:${CYAN}$DISK_USAGE%${NC}"echo-e"${PURPLE}-----------------------------------------------------${NC}"echo-e"${WHITE}📊 系统负载 (1/5/15分钟):${YELLOW}$LOAD_AVG${NC}"echo-e"${PURPLE}=====================================================${NC}"echo-e"${BLUE}💡 提示:输入 'exit' 可退出当前会话 | 更多功能可扩展${NC}"echo""# 空行分隔,提升可读性执行以下命令,让脚本具备可执行权限:
chmod+x /usr/local/bin/server-dashboard.sh编辑/etc/profile文件,在文件末尾添加以下内容:
# 自定义服务器登录欢迎界面/usr/local/bin/server-dashboard.sh编辑~/.bashrc文件(如果是 zsh 则编辑~/.zshrc),在文件末尾添加同样内容:
/usr/local/bin/server-dashboard.sh执行以下命令,让配置立即生效:
# 针对 /etc/profile 配置source/etc/profile# 针对 ~/.bashrc 配置source~/.bashrc此时重新登录服务器(或新开 SSH 会话),就能看到自定义的高大上欢迎界面了!
如果想让界面更“炫酷”,还可以添加以下功能(只需修改脚本即可):
ENV="生产环境"echo-e"${WHITE}📌 运行环境:${RED}$ENV${NC}"iftop依赖):# 安装依赖(CentOS)yuminstall-y iftop# 安装依赖(Ubuntu)aptinstall-y iftop# 新增流量信息输出NETWORK=$(iftop -t -s1-n|grep"Total send"|awk'{print $5 " / " $8}')echo-e"${WHITE}📶 网络流量:${GREEN}$NETWORK${NC}"if[$DISK_USAGE-gt80];thenecho-e"${WHITE}💽 磁盘信息:${GREEN}$DISK_USED/$DISK_TOTAL${NC}|${WHITE}使用率:${RED}$DISK_USAGE% ⚠️${NC}"elseecho-e"${WHITE}💽 磁盘信息:${GREEN}$DISK_USED/$DISK_TOTAL${NC}|${WHITE}使用率:${CYAN}$DISK_USAGE%${NC}"fitopfreedf等基础命令(主流 Linux 发行版默认自带);exec 2>/dev/null),查看具体错误信息。这个小技巧无需复杂的技术栈,几分钟就能落地,既能让你的服务器告别“裸奔”状态,又能快速掌握核心运行信息,真正做到“高大上”且实用!