今天分享一个超炫的脚本,让你登录Linux服务器,自动展示平时关注的系统信息,一目了然。
更重要的是: 脚本复制即可用,还可以自定义修改。
1 效果展示
登录服务器后,自动展示
是不是非常有“掌控感”?系统健康状态一目了然,再也不用翻命令查资源了!
2 实现脚本
编写脚本:
vi /etc/profile.d/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}"
#echo -e "${CYAN}系统信息如下:${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"
3 运行脚本
将脚本添加执行权限即可运行
chmod +x /etc/profile.d/sysinfo.sh
完成上面步骤,即可每次登录 SSH、TTY、Shell,就会自动展示这份美丽的资源清单。
4 注意事项
要将脚本放置在系统会自动执行脚本的目录下,路径建议:
目标 | 建议路径 |
---|---|
全系统生效 | /etc/profile.d/sysinfo.sh |
只对当前用户生效 | ~/.bash_profile 或 ~/.bashrc |
非 bash 用户(zsh 等) | ~/.zshrc 或 /etc/zsh/zshrc |
脚本风格清晰,可集中管理 | /etc/profile.d/ 目录 |
其他注意点:
/etc/profile.d/xxx.sh
中的脚本必须是 可执行的 ,并且以.sh
结尾。~/.bashrc
和~/.bash_profile
执行的是当前用户的脚本,建议不要把对所有用户有影响的逻辑写进去。
上面的脚本不只可以实现系统基本信息展示,也可以 根据需要将本系统的部署的应用展示出来,比如应用的部署路径,应用端口等。
这样刚接手的就快速知道应用部署情况。