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