Loading

登录 Linux 自动展示 CPU/内存/磁盘挂载使用情况等信息(针对于银河麒麟调整的)

1、编写脚本

创建脚本:

vi /etc/profile.d/sysinfo.sh

脚本内容:

#!/bin/bash
set -e

# 颜色
GREEN="\033[1;32m"
YELLOW="\033[1;33m"
CYAN="\033[1;36m"
RESET="\033[0m"

# Unicode 边框字符
H_LINE="─"
V_LINE="│"
CORNER_TL="┌"
CORNER_TR="┐"
CORNER_BL="└"
CORNER_BR="┘"
CROSS_T="┬"
CROSS_B="┴"
CROSS_L="├"
CROSS_R="┤"
CROSS_C="┼"

# 获取系统信息
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_ADDR=$(hostname -I 2>/dev/null | awk '{print $1}')
[ -z "$IP_ADDR" ] && IP_ADDR=$(ip addr show | awk '/inet / && $2 !~ /^127/ {print $2; exit}' | cut -d/ -f1)

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}${CORNER_TL}────────────────────────────────────────────────────────────${CORNER_TR}${RESET}"
echo -e "${CYAN}${V_LINE} 系统资源概览                                                    ${RESET}"
echo -e "${YELLOW}${CROSS_L}────────────────────────────────────────────────────────────${CROSS_R}${RESET}"

printf "${V_LINE} %-12s : %-45s ${V_LINE}\n" "主机名" "$HOSTNAME"
printf "${V_LINE} %-12s : %-45s ${V_LINE}\n" "IP地址" "$IP_ADDR"
printf "${V_LINE} %-12s : %-45s ${V_LINE}\n" "CPU使用" "${CPU_USAGE}%"
printf "${V_LINE} %-12s : %-45s ${V_LINE}\n" "内存使用" "${MEM_USED}MB / ${MEM_TOTAL}MB (${MEM_PCT}%%)"
printf "${V_LINE} %-12s : %-45s ${V_LINE}\n" "负载均值" "$LOADAVG"
printf "${V_LINE} %-12s : %-45s ${V_LINE}\n" "运行时长" "$UPTIME"

echo -e "${YELLOW}${CORNER_BL}────────────────────────────────────────────────────────────${CORNER_BR}${RESET}"

# 磁盘信息展示
echo -e "${CYAN}${V_LINE} 磁盘挂载信息                                                    ${RESET}"
echo -e "${YELLOW}${CROSS_L}────────────────────────────────────────────────────────────${CROSS_R}${RESET}"

# 磁盘表头
printf "${V_LINE} %-30s | %-10s | %-10s | %-8s ${V_LINE}\n" "挂载点" "已用" "总计" "占用"
echo -e "${YELLOW}${CROSS_L}────────────────────────────────────────────────────────────${CROSS_R}${RESET}"

# 磁盘挂载点数据输出
df -h -x tmpfs -x devtmpfs | awk 'NR>1 {
    mount=$6;
    if (length(mount) > 30) {
        mount = substr(mount, 1, 27) "...";
    }
    printf "│ %-30s | %-10s | %-10s | %-8s │\n", mount, $3, $2, $5;
}'

# 底部
echo -e "${YELLOW}${CORNER_BL}────────────────────────────────────────────────────────────${CORNER_BR}${RESET}"
echo -e "${GREEN}操作需谨慎,请妥善使用此终端环境${RESET}\n"

# 保持终端交互
[ -n "$PS1" ] && return 0 2>/dev/null || true

2、运行脚本

chmod +x /etc/profile.d/sysinfo.sh

3、实现效果

image

原创链接:https://mp.weixin.qq.com/s/Yqf0UrfOH-JAEYGUpu5uow
我们公司主要都是银河麒麟的系统,但是这个脚本有点问题,展示的效果不是很好,然后自己修改了一下

posted @ 2025-09-26 17:57  路遥_13  阅读(27)  评论(0)    收藏  举报