标签:bash
#!/bin/bash # system info report def_colors () { # Attributes normal=‘\033[0m‘; bold=‘\033[1m‘; dim=‘\033[2m‘; under=‘\033[4m‘ italic=‘033[3m‘; notalic=‘\033[23m‘; blink=‘\033[5m‘; reverse=‘\033[7m‘; conceal=‘\033[8m‘; nobold=‘\033[22m‘; nounder=‘\033[24m‘; noblink=‘\033[25m‘ # Foreground black=‘\033[30m‘; red=‘\033[31m‘; green=‘\033[32m‘; yellow=‘\033[33m‘ blue=‘\033[34m‘; magenta=‘\033[35m‘; cyan=‘\033[36m‘; white=‘\033[37m‘ # Background bblack=‘\033[40m‘; bred=‘\033[41m‘ bgreen=‘\033[42m‘; byellow=‘\033[43m‘ bblue=‘\033[44m‘; bmagenta=‘\033[45m‘ bcyan=‘\033[46m‘; bwhite=‘\033[47m‘ } def_colors clear hostname=`cat /proc/sys/kernel/hostname` echo echo -e "System Report for $yellow$hostname$normal on `date`" echo prcessor=`grep ‘model name‘ /proc/cpuinfo | cut -d: -f2 | cut -c2-` nisdomain=`cat /proc/sys/kernel/domainname` cache=`grep ‘cache size‘ /proc/cpuinfo | awk ‘{print $4, $5}‘` bogomips=`grep ‘bogomips‘ /proc/cpuinfo | awk ‘{print $3}‘` vendor=`grep ‘vendor_id‘ /proc/cpuinfo` echo -e "Hostname: $yellow$hostname$normal NIS Domain: $white$nisdomain$normal" if [ "`echo $vedner | grep -i intel`" ] then cpu_color=$blue elif [ "`echo $vender | grep -i amd`" ] then cpu_color=$green fi echo -e "Processor: $cpu_color$processor$normal" echo -e "Running at $white$bogomips$normal bogomips with $white$cache$normal cache" echo ostype=`cat /proc/sys/kernel/ostype` osrelease=`cat /proc/sys/kernel/osrelease` rev=`cat /proc/sys/kernel/version | awk ‘{print $1}‘` da_date=`cat /proc/sys/kernel/version | cut -d\ -f2-` upsec=`awk ‘{print $1}‘ /proc/uptime` uptime=`echo "scale=2;$upsec/86400" | bc` echo -e "OS Type: $white${ostype}$normal" echo -e "Kernel: $white${osrelease}$normal" echo -e "Kernel Compile $white${rev}$normal on $white${da_date}$normal" echo -e "Uptime: $magenta${uptime}$normal days" echo echo -e "${red}Network Statistics:${normal}" echo "-------------------" iface_list=`ip addr |grep -A1 -B1 "link/ether"` echo ${iface_list} |awk ‘{ if (NF == 0) { print "No Network Info"; } else { num_of_iface = int(NF / 22); for (i = 1; i <= num_of_iface; i++) { print $(23*i-21), $(23*i-10), $(23*i-6); } } }‘ echo echo -e "${red}Memory Statistics:${normal}" echo "------------------" # statistics the memory info set `grep MemTotal /proc/meminfo` tot_mem=$2; tot_mem_unit=$3 set `grep MemFree /proc/meminfo` free_mem=$2; fre_mem_unit=$3 perc_mem_used=$((100-(100*free_mem/tot_mem))) set `grep SwapTotal /proc/meminfo` tot_swap=$2; tot_swap_unit=$3 set `grep SwapFree /proc/meminfo` free_swap=$2 free_swap_unit=$3 perc_swap_used=$((100-(100*free_swap/tot_swap))) if [ $perc_mem_used -lt 80 ] then mem_color=$green elif [ $perc_mem_used -ge 80 -a $perc_mem_used -lt 90 ] then mem_color=$yellow else mem_color=$red fi if [ $perc_swap_used -lt 80 ] then swap_color=$green elif [ $perc_swap_used -ge 80 -a $perc_swap_used -lt 90 ] then swap_color=$yellow else swap_color=$red fi echo -e "Memory:\n-------\nTotal:\t$white${tot_mem}$normal ${tot_mem_unit}\nFree:\t$white${free_mem}$normal ${fre_mem_unit}\nUsed:\t${mem_color}${perc_mem_used}%$normal" echo echo -e "Swap:\n-----\nTotal:\t$white${tot_swap}$normal ${tot_swap_unit}\nFree:\t$white${free_swap}$normal ${free_swap_unit}${fre_swap_unit}\nUsed:\t${swap_color}${perc_swap_used}%$normal" echo # statistics the load average info set `cat /proc/loadavg` one_min=$1 five_min=$2 fifteen_min=$3 echo -e "${red}Load Adverage:${normal}" echo "---------------" echo "1min 5min 15min" echo "---- ---- -----" for ave in $one_min $five_min $fifteen_min do int_ave=`echo $ave | cut -d. -f1` if [ $int_ave -lt 1 ] then echo -en "$green$ave$normal " elif [ $int_ave -ge 1 -a $int_ave -lt 5 ] then echo -en "$yellow$ave$normal " else echo -en "$red$ave$normal" fi done echo # statistics the process info running=0; sleeping=0; stopped=0; zombie=0 for pid in /proc/[1-9]* do procs=$((procs+1)) stat=`awk ‘{print $3}‘ ${pid}/stat` case $stat in R) running=$((running+1)) ;; S) sleeping=$((sleeping+1)) ;; T) stopped=$((stopped+1)) ;; Z) zombie=$((zombie+1)) ;; esac done echo echo -e "${red}Process Counting:${normal}" echo "-----------------" echo -e "$white${procs}$normal \t total\n$white$running$normal \t running\n$white${sleeping}$normal \t sleeping\n$white${stopped}$normal \t stopped\n$white$zombie$normal \t zombie" echo
运行结果为:
# bash sys_info.sh System Report for master on Thu Oct 15 08:33:02 CST 2015 Hostname: master NIS Domain: (none) Processor: Running at 4389.86 bogomips with 3072 KB cache OS Type: Linux Kernel: 2.6.32-573.3.1.el6.x86_64 Kernel Compile #1 on SMP Thu Aug 13 22:55:16 UTC 2015 Uptime: .06 days Network Statistics: ------------------- eth0: 08:00:27:00:00:00 10.11.1.51/24 eth1: 08:00:27:00:00:01 192.168.56.108/24 Memory Statistics: ------------------ Memory: ------- Total: 1020176 kB Free: 499448 kB Used: 52% Swap: ----- Total: 1015804 kB Free: 1015804 kB Used: 0% Load Adverage: --------------- 1min 5min 15min ---- ---- ----- 0.06 0.02 0.00 Process Counting: ----------------- 104 total 0 running 104 sleeping 0 stopped 0 zombie
本文出自 “天道酬勤” 博客,请务必保留此出处http://lavenliu.blog.51cto.com/5060944/1703252
标签:bash
原文地址:http://lavenliu.blog.51cto.com/5060944/1703252