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*$head 33[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 登陆显示系统信息脚本的主要内容,如果未能解决你的问题,请参考以下文章