shell脚本

#!/bin/bash
# 修复所有BUG:语法错误+计算不准+兼容性+格式错乱
# 颜色定义
GREEN="\033[1;32m"
YELLOW="\033[1;33m"
CYAN="\033[1;36m"
RESET="\033[0m"

# 获取基本信息
HOSTNAME=$(hostname)
# 修复:兼容所有系统的运行时长
UPTIME=$(uptime -p 2>/dev/null | sed 's/up //')
[ -z "$UPTIME" ] && UPTIME=$(uptime | awk -F'up' '{print $2}' | awk -F',' '{print $1}' | sed 's/^ //')
# 系统负载
LOADAVG=$(uptime | awk -F'load average: ' '{print $2}' | sed 's/^ //')

# 修复:内存信息-awk浮点精准计算使用率,无溢出,兼容所有系统
MEM_INFO=$(free -m | awk '/Mem:/ {print $2,$3}')
MEM_TOTAL=$(echo $MEM_INFO | awk '{print $1}')
MEM_USED=$(echo $MEM_INFO | awk '{print $2}')
MEM_PCT=$(echo $MEM_INFO | awk '{printf "%.1f", $2*100/$1}')

# 修复:兼容所有Linux的IP获取方式(CentOS/Ubuntu通用)
IP_ADDR=$(ip addr | grep -E 'inet [0-9]' | grep -v 127.0.0.1 | grep -v inet6 | awk '{print $2}' | cut -d/ -f1 | head -n1)

# 修复:CPU使用率-通用精准写法,兼容所有系统,无报错
CPU_USAGE=$(top -bn1 | awk '/%Cpu/{printf "%.0f", 100-$8}')

# 输出系统信息
echo -e "\n${GREEN}恭喜你成功登录系统,先了解一下系统信息吧!${RESET}"
echo -e "${YELLOW}-------------------------------------------------${RESET}"
# 修复:printf后加空格,语法正确
printf "| %-8s | %-35s |\n" "资源" "使用情况"
printf "|----------|---------------------------------------|\n"
printf "| %-8s | %-35s |\n" "IP地址" "$IP_ADDR"
printf "| %-8s | %-35s |\n" "CPU" "$CPU_USAGE%"
printf "| %-8s | %-35s |\n" "内存" "${MEM_USED}MB / ${MEM_TOTAL}MB (${MEM_PCT}%)"
printf "| %-8s | %-35s |\n" "负载情况" "$LOADAVG"
printf "| %-8s | %-35s |\n" "运行时长" "$UPTIME"

echo -e "${YELLOW}-------------------------------------------------${RESET}"
echo -e "${CYAN}磁盘挂载信息 (排除tmpfs/devtmpfs)${RESET}"
echo -e "${YELLOW}-------------------------------------------------${RESET}"

# 修复:加宽占位宽度,表格对齐不炸裂,语法正确
printf "| %-15s | %-10s | %-10s | %-6s |\n" "挂载点" "已用" "总大小" "使用率"
printf "|-----------------|------------|------------|--------|\n"
df -h -x tmpfs -x devtmpfs | awk 'NR>1 {
    printf "| %-15s | %-10s | %-10s | %-6s |\n", $6, $3, $2, $5
}'

echo -e "${YELLOW}-------------------------------------------------${RESET}"
echo -e "${GREEN}开始你的表演,操作需谨慎,勿当背锅侠!${RESET}\n"

img

posted @ 2026-01-20 17:39  WiseHYH  阅读(1)  评论(0)    收藏  举报