#!/bin/bash

#

# SystemInfo manager

#

#


###Sytem time

timedate(){

echo "**********************************************"

echo "Sytem datetime info:"

echo

echo "    System nowtime:"` date +"%F %H:%M:%S"`

echo "    System uptimes:"` cat /proc/uptime| awk -F. '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf ("%d day %d hour %d Min %d  Sec",run_days,run_hour,run_minute,run_second)}'`

echo

}


###System ip addr

ipaddr(){

echo "**********************************************"

echo "Network adapter info:"

echo

for nets in `ip addr | grep "inet "|grep global|awk '{print $7}'|sort|uniq -u`;

do

echo "  IP_$nets : "

 for ipaddr in `ip addr | grep "inet "|grep global|grep $nets|awk '{print $2}'`;

  do      

    echo "     $ipaddr"

 done

duplex_nets=`ethtool $nets | grep Duplex | awk '{if($2~/Full/) print "Full"};{if($2~/Half/)print "Half"};{if($2~/Uknown!/) print "unknown"}'`

Negotiation_nets=`ethtool $nets | grep "Advertised auto-negotiation"|awk -F': ' '{if($2~/No/) print "Non-negotiation."};{if($2~/Yes/) print "Negotiation"}'`

speed_nets=`ethtool $nets|grep Speed|awk '{print $2}'`

echo "  Speed_$nets : ${speed_nets}"  

echo "  Duplex_$nets : ${duplex_nets}"    

echo "  Negotiation_$nets : ${Negotiation_nets}"

echo

done

}


####System Version

system_info(){

echo "**********************************************"

echo "system info:"

echo

echo "hostname: " `hostname`

echo "System Version:" `cat /etc/issue|head -n 1`

echo "System Bits: " `uname -m`

echo "System kernel:" `uname -r`

echo "System runlevel: " `runlevel`

echo "Server-Model : `dmidecode | grep "Product Name:"|sed -n '1p'|awk -F: '{print $2}'`"

echo

}


####Cpuinfo

cpu_info(){

echo "**********************************************"

echo "CPU info:"

echo

echo "   How much cpu: " `more /proc/cpuinfo |grep "physical id"|uniq|wc -l`

echo "   A cpu several nuclear: " `more /proc/cpuinfo |grep "physical id"|grep "0"|wc -l`

echo "   How nuclear: " `cat /proc/cpuinfo |grep "processor"|wc -l`

echo "   Cpu Name: "  `cat /proc/cpuinfo |grep "model name"|uniq|awk -F: '{print $2}'`

echo "   cpu MHz: "  `cat /proc/cpuinfo |grep MHz|uniq|awk -F: '{print $2}'`

echo "   Cpu cache size" `cat /proc/cpuinfo |grep "cache size"|uniq|awk -F: '{print $2}'`

echo

}


#memory info

mem_info() {

memory=`dmidecode |grep "Range Size"|head -1|awk '{print $3$4}'`

mem_size=`echo "This server has ${memory} memory."`

echo "**********************************************"

echo "Memory info:"

echo

echo "   Total : ${mem_size}"

echo "   Count : `dmidecode |grep -A16 "Memory Device$"|grep Size|awk '{if($2!~/No/) print $0}'|wc -l`"

dmidecode |grep -A20 "Memory Device$"|grep Size|sed '{s/^       */   /g};{/No/d}'

echo "     `cat /proc/meminfo|grep "MemFree"` "

echo "     `cat /proc/meminfo|grep "Buffers"` "

echo "     `cat /proc/meminfo|grep "^Cached"`  "

echo

echo "Swap info:"

echo "     `cat /proc/meminfo|grep "SwapTotal"` "

echo "     `cat /proc/meminfo|grep "SwapFree"` "

echo

}



#disk and partitions

swap_pos=`cat /proc/swaps|sed -n '2p'|awk '{print $1}'`

partition_info() {

echo "**********************************************"

echo "Hard disk info:"

echo

echo "`fdisk -l|grep Disk|awk -F, '{print $1}'`"

echo "**********************************************"

echo "Partition info:"

echo

df -h | grep -v Filesystem | sed "s:none:${swap_pos}:"

echo

}



timedate

system_info

cpu_info

mem_info

partition_info

ipaddr