SSH登录欢迎信息与系统状态显示
前言
在通过 SSH 登录服务器或计算机时,设置一个自定义的欢迎信息,不仅可以提升用户体验,还能在登录时快速查看系统状态信息(如系统名称、版本、负载、内存等)。本文介绍如何为不同类型的系统配置登录后的欢迎信息,适用以下场景:
- UOS 电脑
- Ubuntu 服务器
- UOS 服务器
- OpenWrt
通过修改 /etc/profile
文件,可以在用户登录后展示自定义的欢迎信息和系统状态。
配置步骤
1. 修改 /etc/profile
文件
在目标系统的 /etc/profile
文件末尾插入自定义代码。代码内容应根据系统类型进行调整(例如显示系统名称、版本信息、CPU 状态等)。
sudo vim /etc/profile
以下是我使用的,可以参考,可能需要自行修改部分内容。
UOS系统:
echo -e "\033[1;32m系统状态:\033[0m"
echo -e "\033[1;34m主机名: \033[0m\033[1;37m$(uname -n)\033[0m"
echo -e "\033[1;34m运行时长: \033[0m\033[1;37m$(awk '{print int($1/3600)"小时 "int(($1%3600)/60)"分钟"}' /proc/uptime)\033[0m"
MEM=$(free | grep Mem | awk '{printf "%d/%d MB", $3/1024, $2/1024}')
echo -e "\033[1;34m内存使用: \033[0m\033[1;37m$MEM\033[0m"
# 系统盘使用情况
DISK_ROOT=$(df -h / | awk '/\/$/ {print $3 "/" $2}')
echo -e "\033[1;34m系统盘空间: \033[0m\033[1;37m$DISK_ROOT\033[0m"
# 数据盘使用情况
DISK_DATA=$(df -h /data | awk '/\/data/ {print $3 "/" $2}')
echo -e "\033[1;34m数据盘空间
ubuntu:
echo -e "\033[1;32m系统状态:\033[0m"
echo -e "\033[1;34m主机名: \033[0m\033[1;37m$(uname -n)\033[0m"
echo -e "\033[1;34m运行时长: \033[0m\033[1;37m$(awk '{print int($1/3600)"小时 "int(($1%3600)/60)"分钟"}' /proc/uptime)\033[0m"
MEM=$(free | grep Mem | awk '{printf "%d/%d MB", $3/1024, $2/1024}')
echo -e "\033[1;34m内存使用: \033[0m\033[1;37m$MEM\033[0m"
# 系统盘使用情况
DISK_ROOT=$(df -h / | awk '/\/$/ {print $3 "/" $2}')
echo -e "\033[1;34m根目录空间: \033[0m\033[1;37m$DISK_ROOT\033[0m"
OpenWrt:
echo -e "\033[1;32m系统状态:\033[0m"
echo -e "\033[1;34m主机名: \033[0m\033[1;37m$(uname -n)\033[0m"
echo -e "\033[1;34m运行时长: \033[0m\033[1;37m$(awk '{print int($1/3600)"小时 "int(($1%3600)/60)"分钟"}' /proc/uptime)\033[0m"
IP=$(ip -o -4 addr show $(uci get network.lan.ifname 2>/dev/null || echo br-lan) | awk '{print $4}' | cut -d/ -f1)
if [ -n "$IP" ]; then
echo -e "\033[1;34mIP 地址: \033[0m\033[1;37m$IP\033[0m"
else
echo -e "\033[1;34mIP 地址: \033[0m\033[1;31m不可用\033[0m"
fi
if [ -f /sys/class/thermal/thermal_zone0/temp ]; then
TEMP=$(cat /sys/class/thermal/thermal_zone0/temp)
echo -e "\033[1;34mCPU 温度: \033[0m\033[1;37m$(awk "BEGIN {printf \"%.1f°C\", $TEMP/1000}")\033[0m"
else
echo -e "\033[1;34mCPU 温度: \033[0m\033[1;31m不可用\033[0m"
fi
MEM=$(free | grep Mem | awk '{printf "%d/%d MB", $3/1024, $2/1024}')
echo -e "\033[1;34m内存使用: \033[0m\033[1;37m$MEM\033[0m"
DISK=$(df -h / | awk '/\/$/ {print $3 "/" $2}')
echo -e "\033[1;34m磁盘使用: \033[0m\033[1;37m$DISK\033[0m"
# 添加 tmp 使用情况
TMP=$(df -h /tmp | awk '/tmpfs/ {print $3 "/" $2}')
echo -e "\033[1;34mTmp 使用: \033[0m\033[1;37m$TMP\033[0m"
# 添加挂载目录使用情况
MOUNTED=$(df -h /mnt/mmcblk0p13 | awk '/\/mnt\/mmcblk0p13/ {print $3 "/" $2}')
echo -e "\033[1;34m挂载存储: \033[0m\033[1;37m$MOUNTED\033[0m"
UOS服务器:
echo -e "\033[1;32m系统状态:\033[0m"
echo -e "\033[1;34m主机名: \033[0m\033[1;37m$(uname -n)\033[0m"
echo -e "\033[1;34m运行时长: \033[0m\033[1;37m$(awk '{print int($1/3600)"小时 "int(($1%3600)/60)"分钟"}' /proc/uptime)\033[0m"
MEM=$(free | grep Mem | awk '{printf "%d/%d MB", $3/1024, $2/1024}')
echo -e "\033[1;34m内存使用: \033[0m\033[1;37m$MEM\033[0m"
# 系统盘使用情况
DISK_ROOT=$(df -h / | awk '/\/$/ {print $3 "/" $2}')
echo -e "\033[1;34m根目录空间: \033[0m\033[1;37m$DISK_ROOT\033[0m"
# 数据盘使用情况
DISK_DATA=$(df -h /data | awk '/\/data/ {print $3 "/" $2}')
echo -e "\033[1;34mdata空间: \033[0m\033[1;37m$DISK_DATA\033[0m"
以下是 /etc/profile
文件内容:
评论区