系统登录信息输出

作者: K-Joker 分类: shell脚本 发布时间: 2018-09-15 11:38

SSH登录的时候执行脚本,输出一些相关的信息
如:CPU的使用率、内存的使用率、磁盘的使用率、进程的数量等信息

首先,我们编辑一个shell脚本

#!/bin/bash
Running=`ps -ef | wc -l`
Users=`who | wc -l`
Filesystem=`df -Th | grep "/dev/vda1" | awk '{print $6}'`
MenTotal=`free | grep "Mem" | awk '{print $2}'`
MenUsed=`free | grep "Mem" | awk '{print $3}'`
Mem=`echo "scale=2; $MenUsed / $MenTotal * 100" | bc | awk -F . '{print $1}'`
#用户空间占用CPU百分比
us=`top -b -n 1 | grep "Cpu(s):" | awk '{print $2}' | awk -F % '{print $1}' | sed s/[[:space:]]//g`
#内核空间占用CPU百分比
sy=`top -b -n 1 | grep "Cpu(s):" | awk -F , '{print $2}' | awk -F % '{print $1}' | sed s/[[:space:]]//g`
#用户进程空间内改变过优先级的进程占用CPU百分比
ni=`top -b -n 1 | grep "Cpu(s):" | awk -F , '{print $3}' | awk -F % '{print $1}' | sed s/[[:space:]]//g`
#等待输入输出的CPU时间百分比
wa=`top -b -n 1 | grep "Cpu(s):" | awk -F , '{print $5}' | awk -F % '{print $1}' | sed s/[[:space:]]//g`
CPU=`echo "scale=0; $us + $sy + $ni + $wa" | bc | awk -F . '{print $1}'`

if [[ $CPU -gt 80 ]]; then
echo -e "\033[41;30m CPU:$CPU% \c \033[0m"
else
echo -e "\033[42;30m CPU:$CPU% \c \033[0m"
fi

if [[ $Mem -gt 80 ]]; then
echo -e "\033[41;30m Men:$Mem% \c \033[0m"
else
echo -e "\033[42;30m Men:$Mem% \c \033[0m"
fi

if [[ $Filesystem "80%" ]]; then
echo -e "\033[41;30m File:$Filesystem \033[0m"
else
echo -e "\033[42;30m File:$Filesystem \033[0m"
fi

if [[ $Running -gt 82 ]]; then
echo -e "\033[41;30m Running Proceses: $Running \c \033[0m"
else
echo -e "\033[42;30m Running Proceses: $Running \c \033[0m"
fi

if [[ $Users -gt 1 ]]; then
echo -e "\033[41;30m Login Users: $Users user \033[0m"
else
echo -e "\033[42;30m Login Users: $Users user \033[0m"
fi

echo ""

然后,我们在/etc目录下的profile文件最后一行添加/bin/bash /root/system_cat.sh,用户远程登陆就自动的执行上面的脚本程序,并输出信息

最后,可以按自己习惯修改/etc/issue和/etc/motd 文件

哟,老板,有空常来呀~

发表评论

电子邮件地址不会被公开。