Hardware Configuration for Linux Shell Script
#!/bin/bash
#
# System configuration
# (All most complete information)
# @uther : linuxeverywhere@gmail.com
#
#This script path and name---------------[
if [ `dirname $0` == "." ] ; then
thisScript=`pwd`"/$0"
else
thisScript=$0
fi
#This script path and name---------------[
#-----------check root or any local user-----#
userId=`id -g`
if [ $userId == 0 ]; then
clear
echo ""
echo " System configuration"
echo " ===================="
#System-Info---------------------[
host_name=`hostname`
date_n_time=`date '+%m/%d/%y %H:%M:%S'`
#System-Info---------------------]
#os-details----------------------[
os_installed=`cat /etc/issue | head -1`
os_name=`uname -a`
hw_platform=`uname -i`
if [ $hw_platform == "i386" ]; then
hw_platform="32bit"
fi
if [ $hw_platform == "x86_64" ]; then
hw_platform="64bit"
fi
#os-details----------------------]
#users---------------------------[
no_of_users=`who | wc -l`
users=`users | awk '{ while(++i<=NF) printf (!a[$i]++) ? $i FS : ""; i=split("",a); print "" }'`
#users---------------------------]
#ip-address(s)----------------------[
ip_address=`echo \`ifconfig | grep "inet addr"| grep -v "127.0.0.1" | awk '{print $2}' |cut -d: -f2 \` |tr " " ","`
#ip-address(s)----------------------]
#cpu-info------------------------[
cpu=`grep "model name" /proc/cpuinfo | cut -d: -f2 | head -1`
no_of_cpu=`grep "model name" /proc/cpuinfo | cut -d: -f2 | wc -l`
#cpu-info------------------------]
#RAM and Swap Info------------------------[
Javaversion=`java -version 2>&1 | awk '{print $2$3$4}' |tail -1`
RamInSystem=`echo \`dmidecode --type 17 | grep "Size" | grep "MB" |awk '{print $2}'\``
RAM_total_available=`free -m 2>&1 | awk '{print $4}' | head -2 | tail -1`
RAM_total_cut=`echo $RamInSystem | awk '{print $1+$2+$3+$4+$5}'| awk '{print $1 / 1000}' | bc | cut -d. -f1`
swapInstalled=`cat /proc/swaps | tail -1 | awk '{print $3 / 1000000}' | bc`
swapInstalled_cut=`echo "$swapInstalled" | cut -d. -f1`
RamMulByTwo=`echo "$RAM_total_cut * 2" | bc`
if [ $RamMulByTwo -le $swapInstalled_cut ]; then
swapOkOrNot=`echo "Yes"`
else
swapOkOrNot=`echo "No. Atleast $RamMulByTwo GB should be there"`
fi
RAM_total_used=`free -m 2>&1 | awk '{print $3}' | head -2 | tail -1`" MB"
countRams=`echo $RamInSystem | wc -w`
RamSize=`echo $RamInSystem | tr " " ","`" MB [$countRams RAM(s)]"
#RAM and Swap Info------------------------]
#HDD Info------------------------[
if [ $userId == 0 ]; then
No_of_HDDs=`fdisk -l 2>&1 | grep Disk | grep -v "identifier" | grep -v "valid partition" | awk '{print $3}' | wc -l`
countHDD=`fdisk -l 2>&1 | grep Disk | grep -v "identifier" | grep -v "valid partition" | awk '{print $3}' | wc -m`
countHDD=`echo $[ $countHDD - 1 ]`
HDD=`fdisk -l 2>&1 | grep "Disk" | grep -v "identifier" | grep -v "valid partition" | awk '{print $3 ""}' | tr "\n" ","| cut -c1-$countHDD`" GB [$No_of_HDDs HDD(s)]"
else
HDD="not configured -deepak"
fi
#HDD Info------------------------]
#Tomcat-Status-----------can be used in tomcatservice file /etc/init.d/tomcat...--------[
tomcat_count=`ps -ef | grep catalina | grep -v "grep catalina" | grep -v "catalina.out"| wc -l`
psid=`ps -ef | grep catalina | grep -v "grep catalina" | grep -v "catalina.out" | awk '{print $2}' | head -1`
if [ $tomcat_count = 1 ]
then
tomcat_status="Running. ( pid "`ps ax --width=1000 | grep "[o]rg.apache.catalina.startup.Bootstrap start" | awk '{printf $1 " "}'`")"
KBusedbyTomcat=`pmap $psid 2>&1 | tail -1 | awk '{print $2}' | cut -dK -f1`
elif [ $tomcat_count -gt 1 ]
then
tomcat_status="Not Running (There may be an error. Pid "`ps ax --width=1000 | grep "[o]rg.apache.catalina.startup.Bootstrap start" |awk '{printf $1 " "}'`")"
else
tomcat_status="Not Running"
KBusedbyTomcat="0"
fi
#Tomcat-Status-------------------]
#Postgres-Status-------------------[
postgres_count=`ps -ef | grep postgres | grep -v "grep postgres" | wc -l`
if [ $postgres_count -gt 0 ]; then
postgres_status="Running. ( pid "`ps ax --width=1000 | grep "postgres" | grep -v "grep postgres" | awk '{printf $1 " "}'`")"
else
postgres_status="Not Running"
fi
#Postgres-Status-------------------]
#-----------------------------------------IMPORTANT-------------------------------[
if [ $RAM_total_available -lt 50 ]; then
echo -e "\t\t\t\t\t:X: DANGER :X:\n\t\t\t\t\tSystem Running in very low memory : $RAM_total_available MB only"
fi
#-----------------------------------------IMPORTANT-------------------------------]
echo ""
echo " Computer Name : $host_name"
echo " Operating System (Name) : $os_installed"
echo " Operating System (Description) : $os_name"
echo " OS Hardware platform : $hw_platform"
echo " System Date & Time : $date_n_time"
echo " IP address(es) given : $ip_address"
echo " CPU :$cpu [$no_of_cpu cpu(s)]"
echo " RAM installed : $RamSize"
echo " RAM available : $RAM_total_available MB"
echo " Java version : $Javaversion"
echo " Swap memory : $swapInstalled"
echo " Swap memory is enough ? : $swapOkOrNot"
echo " RAM used : $RAM_total_used"
echo " Hard disk(s) : $HDD"
echo " Users logged in : $users (in $no_of_users places)"
echo ""
echo " Tomcat status : $tomcat_status"
echo " Memory used by Tomcat : $KBusedbyTomcat KB"
echo " Postgres status : $postgres_status"
echo ""
else
echo ""
echo "!!! Please Login as root OR enter root password!!!"
su root -c "$thisScript"
fi
No comments:
Post a Comment