Linux 登陆显示系统信息脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 登陆显示系统信息脚本相关的知识,希望对你有一定的参考价值。

#!/bin/bash
 
date=`date "+%F %T"`
head="System information as of: $date"
 
kernel=`uname -r`
hostname=`echo $HOSTNAME`
 
#Cpu load
load1=`cat /proc/loadavg | awk '{print $1}'`
load5=`cat /proc/loadavg | awk '{print $2}'`
load15=`cat /proc/loadavg | awk '{print $3}'`
 
#System uptime
uptime=`cat /proc/uptime | cut -f1 -d.`
upDays=$((uptime/60/60/24))
upHours=$((uptime/60/60%24))
upMins=$((uptime/60%60))
upSecs=$((uptime%60))
up_lastime=`date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"`
 
#Memory Usage
mem_usage=`free -m | awk '/Mem:/{total=$2} /buffers/cache/ {used=$3} END {printf("%3.2f%%",used/total*100)}'`
 
#Processes
processes=`ps aux | wc -l`
zombie_processes=`ps axo stat |grep Z |wc -l`
 
#Flavor
cpus=`cat /proc/cpuinfo |grep processor |wc -l`
mem=`cat /proc/meminfo |grep MemTotal|awk '{print $2/1024/1024+0.9}'|cut -d. -f1`
#disk=`lsblk -l |grep -w vd[a-z] |sed 's/G//g'|awk '{sum+=$4} END {print sum}'`
disk=`lsblk -l |grep -w vd[a-z] |sed 's/G//g'|awk '{print $4}'|awk 'BEGIN{FS="
";RS="";ORS=""}{for(x=1;x<=NF;x++){print "-"$x"g"} print "
"}'`
 
#User
users=`users | wc -w`
USER=`whoami`
 
#System fs usage
Filesystem=$(df -hP | awk '/^/dev/{print $6}')
 
#Interfaces
INTERFACES=$(ip -4 ad | grep 'state ' | awk -F":" '!/^[0-9]*: ?lo/ {print $2}')
 
 
echo
echo -e "	33[34m*$head33[0m"
printf "
"
printf "	""Kernel Version:	%s
" $kernel
printf "	""HostName:	%s
" $hostname
printf "	""System Load:	%s %s %s
" $load1, $load5, $load15
printf "	""System Uptime:	%s"d," %s"h," %s"m," %s"s"
" $upDays $upHours $upMins $upSecs
printf "	""Login Users:	%s		Whoami:	%s
" $users $USER
printf "	""Processes:	%s		Zombie Proce:	%s
" $processes $zombie_processes
printf "	""Flavor Size:	%sc_%sg%s	Memory Usage:	%s
" $cpus $mem $disk $mem_usage
printf "
"
printf "	""Filesystem	Usage		Total
"
for f in $Filesystem
 do
    Usage=$(df -hP | awk '{if($NF=="'''$f'''") print $5}')
    Total=$(df -hP | awk '{if($NF=="'''$f'''") print $2}')
 
    echo -e "	$f		$Usage		$Total"
 done
printf "
"
printf "	""Interface	MAC Address		IP Address
"
for i in $INTERFACES
 do
    MAC=$(ip ad show dev $i | grep "link/ether" | awk '{print $2}')
    IP=$(ip ad show dev $i | awk '/inet / {print $2}' |awk 'BEGIN{FS="
";RS="";ORS=""}{for(x=1;x<=NF;x++){print $x"	"} print "
"}')
    echo -e  "e[1;31m	"$i"		"$MAC"	$IPe[0m"
 done
echo


用于用户登录后显示系统信息

以上是关于Linux 登陆显示系统信息脚本的主要内容,如果未能解决你的问题,请参考以下文章