This is a small shell script that captures almost all the necessary details of a linux system. I tested this script in CentOS and Redhat operating systems. You can access this script directly from github.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# Author Amal G Jose | |
# This script provides the consolidated details of a linux operaing system | |
# clear the screen | |
clear | |
# Unset Variables | |
unset sys_date tempvar os architecture kernelrelease internalip externalip nameserver loadaverage sysuptime | |
# Define Variable tempvar | |
tempvar=$(tput sgr0) | |
#Check System date | |
echo -e '\E[33m'"System Date :" $tempvar `date` | |
# Check whether the system is connected to Internet or not | |
ping -c 1 google.com &> /dev/null && echo -e '\E[33m'"Internet: $tempvar Connected" || echo -e '\E[33m'"Internet: $tempvar Disconnected" | |
# Check OS Type | |
os=$(uname -o) | |
echo -e '\E[33m'"Operating System Type :" $tempvar $os | |
# Check OS Release Version and Name | |
cat /etc/*-release | grep 'NAME\|VERSION' | grep -v 'VERSION_ID' | grep -v 'PRETTY_NAME' > /tmp/osrelease | |
echo -n -e '\E[33m'"OS Name :" $tempvar && cat /tmp/osrelease | grep -v "VERSION" | cut -f2 -d\" | |
echo -n -e '\E[33m'"OS Version :" $tempvar && cat /tmp/osrelease | grep -v "NAME" | cut -f2 -d\" | |
# Check System Architecture | |
architecture=$(uname -m) | |
echo -e '\E[33m'"Architecture :" $tempvar $architecture | |
# Check Kernel Release | |
kernelrelease=$(uname -r) | |
echo -e '\E[33m'"Kernel Release :" $tempvar $kernelrelease | |
# Check hostname | |
echo -e '\E[33m'"Hostname :" $tempvar $HOSTNAME | |
# Check Internal IP | |
internalip=$(hostname -I) | |
echo -e '\E[33m'"Internal IP :" $tempvar $internalip | |
# Check External IP | |
externalip=$(curl -s ipecho.net/plain;echo) | |
echo -e '\E[33m'"External IP : $tempvar "$externalip | |
# Check DNS | |
nameservers=$(cat /etc/resolv.conf | sed '1 d' | awk '{print $2}') | |
echo -e '\E[33m'"Name Servers :" $tempvar $nameservers | |
# Check Logged In Users | |
who>/tmp/who | |
echo -e '\E[33m'"Logged In users :" $tempvar && cat /tmp/who | |
# Check RAM and SWAP Usages | |
free -g | grep -v + > /tmp/ramcache | |
echo -e '\E[33m'"Ram Usages :" $tempvar | |
cat /tmp/ramcache | grep -v "Swap" | |
echo -e '\E[33m'"Swap Usages :" $tempvar | |
cat /tmp/ramcache | grep -v "Mem" | |
# Check Disk Usages | |
df -h > /tmp/diskusage | |
echo -e '\E[33m'"Disk Usages :" $tempvar | |
cat /tmp/diskusage | |
# System statistics | |
top -n 1 -b | head -5 > /tmp/sysstats | |
echo -e '\E[33m'"System Statistics :" $tempvar | |
cat /tmp/sysstats | |
# Check System Uptime | |
sysuptime=$(uptime | awk '{print $3,$4}' | cut -f1 -d,) | |
echo -e '\E[33m'"System Uptime Days/(HH:MM) :" $tempvar $sysuptime | |
# Check the ssh connections to the system | |
echo -e '\E[33m'"SSH connections made to the system :" $tempvar | |
w > /tmp/sshconn | |
cat /tmp/sshconn | |
# Unset Variables | |
unset tempvar os architecture kernelrelease internalip externalip nameserver loadaverage sysuptime | |
# Remove Temporary Files | |
rm /tmp/osrelease /tmp/who /tmp/ramcache /tmp/diskusage /tmp/sshconn /tmp/sysstats |