稷然如此

  • 首页
  • 文章分类
    • AI
    • Android
    • Java
    • Shell
    • Vue
    • C#
    • Python
    • 数据库
    • 组件
    • 其他
    • Game
  • 常用命令
    • Docker
    • Git
    • Linux
  • 操作系统
    • CentOS
    • Ubuntu
    • Windows
    • Kylin
  • 工具
    • IntelliJ IDEA
    • Visual Studio Code
稷然如此
不积跬步,无以至千里
  1. 首页
  2. 操作系统
  3. CentOS
  4. 正文

Linux 登录脚本:自动显示系统状态与中间件运行情况

2025年11月28日 15点热度 0人点赞
日常运维工作中,每次通过 SSH 登录服务器时,我们往往需要快速了解当前系统的运行状态:负载高不高?``内存是否充足?关键服务(如 Nginx、MySQL、Redis)是否正常运行?IP 地址是多少?
虽然可以通过手动执行 top、free、df、systemctl status 等命令逐一查看,但效率较低,尤其在管理多台服务器时体验更差。为此,我整理并优化了一个轻量级的 登录欢迎脚本(system-info.sh),部署后可在每次用户登录时自动显示关键系统信息,帮助运维人员快速掌握服务器状态。该脚本已在 CentOS 7/8、Rocky Linux、Ubuntu 等主流发行版上验证可用,无额外依赖,安全可靠。
编写脚本
以 root 用户登录系统,system-info.sh 在 kylin 系统下一已存在,可自定义脚本文件名。
注意:脚本复制粘贴进去,有可能会存在 windows 字符集、全角空格等问题。可参考文章进行转换:Linux Shell 脚本执行报错
sudo vi /etc/profile.d/system-info.sh
#!/bin/bash

# 获取内核版本
welcome=$(uname -r)

# 内存
memory_total=$(free -m | awk '/Mem:/ { print $2 }')
if [ "$memory_total" -gt 0 ]; then
    memory_usage=$(free -m | awk '/Mem:/ { printf("%3.1f%%", $3/$2*100) }')
else
    memory_usage="0.0%"
fi

# 交换内存
swap_total=$(free -m | awk '/Swap:/ { print $2 }')
if [ "$swap_total" -gt 0 ]; then
    swap_mem=$(free -m | awk '/Swap:/ { printf("%3.1f%%", $3/$2*100) }')
else
    swap_mem="0.0%"
fi

# 磁盘使用情况
usageof=$(df -h / | awk '/\// {print $(NF-1)}')

# 系统负载
load_average=$(awk '{print $1}' /proc/loadavg)

# 当前用户
whoiam=$(whoami)

# 时间
time_cur=$(date)

# 进程数
processes=$(ps aux | wc -l)

# 在线用户数
user_num=$(users | wc -w)

# IP地址
ip_pre=$(/sbin/ip a | grep inet | grep -v 127.0.0.1 | grep -v inet6 | awk '{print $2}' | head -1)
ip_address=${ip_pre%/*}

# 中间件检测
nginx_process=$(ps aux | grep -v grep | grep nginx)
java_count=$(ps aux | grep -v grep | grep -c java)
mysql_process=$(ps aux | grep -v grep | grep mysql)
redis_process=$(ps aux | grep -v grep | grep redis-server)

# 输出格式
bold=$(tput bold)
normal=$(tput sgr0)
yellow=$(tput setaf 3)

echo -e "\n"
echo -e "${bold}欢迎访问系统版本 $welcome${normal}\n"
echo -e "系统信息(当前时间:${bold}$time_cur${normal})\n"
echo -e "系统负载:\t${yellow}$load_average${normal}"
echo -e "进程数:\t$processes"
echo -e "内存使用:\t$memory_usage"
echo -e "交换内存使用:\t$swap_mem"
echo -e "磁盘使用:\t$usageof"
echo -e "IP地址:\t$ip_address"
echo -e "在线用户数:\t$user_num"

echo -e "中间件安装情况:\n"
if [ -n "$nginx_process" ]; then
    echo -e "Nginx:\t\t已安装"
else
    echo -e "Nginx:\t\t未发现"
fi

if [ "$java_count" -gt 0 ]; then
    echo -e "Java:\t\t已安装(进程数:$java_count)"
else
    echo -e "Java:\t\t未发现"
fi

if [ -n "$mysql_process" ]; then
    echo -e "MySQL:\t\t已安装"
else
    echo -e "MySQL:\t\t未发现"
fi

if [ -n "$redis_process" ]; then
    echo -e "Redis:\t\t已安装"
else
    echo -e "Redis:\t\t未发现"
fi

if [ "$whoiam" == "root" ]; then
    echo -e "\n"
else
    echo -e "要以管理员身份运行命令,请使用 sudo <command>"
fi
# 添加可执行权限
sudo chmod +x /etc/profile.d/system-info.sh
温馨提示:进入系统后,还可以通过调用此脚本实时查看:
sudo sh /etc/profile.d/system-info.sh

 

标签: 暂无
最后更新:2025年11月28日

Akim

犇 骉 Java、C#、Python、Go、Android、MiniProgram、Bootstrap、Vue2

点赞
< 上一篇

Copyright © 2025 aianran.com All Rights Reserved.

免责申明 | 隐私政策 | 服务条款 | 关于我们

黔ICP备2023008200号-1

贵公网安备 52010202003594号