shell登录显示系统信息

脚本放到 /etc/profile.d/ 目录下即可(Centos5,6,7)

#!/bin/bash

#####################################################
# Author:        楚枫默寒
# Create_time:   2024/06/04
# Modify_time:   2024/06/11
#####################################################

# 定义颜色
HL='\033[37;1m'
RED='\033[31;1m'
GREEN='\033[32;1m'
YELLOW='\033[33;1m'
BLUE='\033[34;1m'
END='\033[0;1m'
DEFAULT='\033[0m'

#[信息信息]
HN=$HOSTNAME
DT=$(date +"%Y-%m-%d,%H:%M:%S")
VER=$(awk '/^[^#]/{print ($1,$3~/^[0-9]/?$3:$4)}' /etc/redhat-release)
HE=$(uname -sro)
UP=$(awk '{a=$1/86400;b=($1%86400)/3600;c=($1%3600)/60;d=$1%60}{printf("%d days, %d:%d:%d\n",a,b,c,d)}' /proc/uptime|awk '{if($1>=90) {print "'"${RED}"'"$1"'"${END}"'",$2,$3} else {print "'"${GREEN}"'"$1"'"${END}"'",$2,$3}}')
IPadd=$(ip addr | egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | egrep -v  "^127|0.0.0.0"| head -n 1|awk '{print "'"${RED}"'"$1"'"${END}"'"}')

#[系统版本]
osrelease=`cat /etc/redhat-release|awk -F "" '{for(i=1;i<=NF;i++) {if ($i ~ /[^ a-zA-Z()]/ ){str=$i
str1=(str1 str)}}print str1}'|awk -F"." '{print $1}'`

#[cpu部分]
cpu_info=`awk -F: '/model name/ {name=$2} END {print name}' /proc/cpuinfo | sed 's/^[ \t]*//;s/[ \t]*$//'`
cpu_hexin=`awk -F: '/model name/ {core++} END {print core}' /proc/cpuinfo`

#[内存swap]
mem_used=$(free -m | grep Mem | awk '{print$3}')
mem_total=$(free -m | grep Mem | awk '{print$2}')
swap_used=$(free -m | awk '/Swap/ {print $3}')
swap_total=$(free -m | awk '/Swap/ {print $2}')
M_info=$(free|grep -v buff|awk 'NR==1{printf "%.0f\n",$3/$2*100}'|awk '{if($1>=80) {print "'${mem_used}' MB / '${mem_total}' MB ('"${RED}"'"$1"'"${END}"'% Used)"} else {print "'${mem_used}' MB / '${mem_total}' MB ('"${GREEN}"'"$1"'"${END}"'% Used)"}}')
S_info=$(free|grep -v buff|awk 'NR==2{printf "%.0f\n",$3/$2*100}'|awk '{if($1>=80) {print "'${swap_used}' MB / '${swap_total}' MB ('"${RED}"'"$1"'"${END}"'% Used)"} else {print "'${swap_used}' MB / '${swap_total}' MB ('"${GREEN}"'"$1"'"${END}"'% Used)"}}')

#[Cpu负载信息]
load1=$(uptime |awk '{print $(NF-2),$(NF-1),$(NF)}'|awk -F , '{print $(NF-2),$(NF-1),$(NF)}'|awk '{if($1>=80) {print "'"${RED}"'"$1"'"${END}"'"} else {print "'"${GREEN}"'"$1"'"${END}"'"}}')"(1m) " 
load2=$(uptime |awk '{print $(NF-2),$(NF-1),$(NF)}'|awk -F , '{print $(NF-2),$(NF-1),$(NF)}'|awk '{if($2>=80) {print "'"${RED}"'"$2"'"${END}"'"} else {print "'"${GREEN}"'"$2"'"${END}"'"}}')"(5m) " 
load3=$(uptime |awk '{print $(NF-2),$(NF-1),$(NF)}'|awk -F , '{print $(NF-2),$(NF-1),$(NF)}'|awk '{if($3>=80) {print "'"${RED}"'"$3"'"${END}"'"} else {print "'"${GREEN}"'"$3"'"${END}"'"}}')"(15m)" 

#[用户进程信息]
user_list=$(grep "bash$" /etc/passwd|awk -F [:] '{print $1}')  
for u in $user_list
do 
   Pro_detail=$(ps aux | grep $u|grep -v 'grep' | wc -l)"($u)"
   Pro_user+=$Pro_detail" "
done
Ulo=$(who|wc -l)

#[登录信息]
LastB=$(who -b|awk '{print $(NF-1),$(NF)}')
LastL=$(last -n 1 | head -n 1|awk '{print $1,$3,"at",$4,$5,$6,$7}')

#[文件系统]
FS=$(while read line; 
do 
  awk '{if($4>=80) {printf "%-s%-30s%8s%8s%27s\n"," Mounted: ",$1,$2,$3," ('"${RED}"'"$4"'"${END}"'% Used)"} else {printf "%-s%-30s%8s%8s%27s\n"," Mounted: ",$1,$2,$3," ('"${GREEN}"'"$4"'"${END}"'% Used)"}}' <<< ${line}
  percent=$(echo "${line}"|awk '{print $4}'); 
  PROGRESS_BAR_WIDTH=65
  for i in ${percent}; 
  do
    if [[ ${percent} -ge 80 ]];then
        echo -ne "$i%" | awk -v width=$PROGRESS_BAR_WIDTH '{
            done = int($1/100*width);
            undone = width - done;
            printf("  [");
            for(i=0; i<done; i++) {printf("'"${RED}"'='"${END}"'");}
            for(i=0; i<undone; i++) {printf(" ");}
            printf("]");
            printf("\r");
        }'
    else
        echo -ne "$i%" | awk -v width=$PROGRESS_BAR_WIDTH '{
            done = int($1/100*width);
            undone = width - done;
            printf("  [");
            for(i=0; i<done; i++) {printf("'"${GREEN}"'='"${END}"'");}
            for(i=0; i<undone; i++) {printf(" ");}
            printf("]");
            printf("\r");
        }'
    fi
  done
  echo
done <<< "$(df -hP|egrep -v '10|tmpfs|Filesystem|挂载点'|awk '{gsub("%"," ");print $6,$2,$3,$5}')")

#[结果输出]
echo -e "${HL}
[System Info]
 Hostname            : $HOSTNAME
 Current Time        : ${DT}
 Version             : ${VER}
 Kernel              : ${HE}
 Uptime              : ${UP}
 Ipaddr              : ${IPadd}

 Cpu                 : ${cpu_info} | ${cpu_hexin} 核
 Memory              : ${M_info}
 SWAP                : ${S_info}
 Load avg            : ${load1} ${load2} ${load3}
 Processes           : ${Pro_user}
 Users Logged on     : ${Ulo}

 Last Boot           : ${LastB}
 Last Login          : ${LastL}

[Filesystem Info]
 Mounted: 挂载点                            容量    已用  (已用% Used)
${FS}
${DEFAULT}"

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

楚枫默寒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值