mirror of
https://github.com/techarkit/shell-scripting-tutorial.git
synced 2025-07-31 21:09:32 +00:00
Create serverinformation.sh
Collect Linux Server information
This commit is contained in:
104
serverinformation.sh
Normal file
104
serverinformation.sh
Normal file
@ -0,0 +1,104 @@
|
||||
#!/bin/bash
|
||||
|
||||
mkdir -p /Inventory
|
||||
sudo chmod -R 777 /Inventory/
|
||||
mkdir -p /tmp/asset
|
||||
touch /tmp/asset/`hostname`.txt
|
||||
touch /tmp/temptext
|
||||
TEMP=/tmp/temptext
|
||||
LOG=`ls /tmp/asset/*.txt`
|
||||
echo "## Host Information" > $LOG
|
||||
echo "Host Name : `hostname` " >> $LOG
|
||||
echo "`sudo /sbin/ifconfig -a |grep "inet" | awk 'BEGIN { FS = ":" } ; { print $2 }'`" >> $TEMP
|
||||
echo "IP Address : `egrep '^10' $TEMP |awk '{ print $1}'`" >> $LOG
|
||||
echo "IP Address: `hostname -I`" >> $LOG
|
||||
echo "ip a |grep inet |grep -v "::" |awk '{print $2}'" >> $LOG
|
||||
echo "iDrac Details: `racadm getniccfg |grep "IP Address" |grep -v "::"`" >> $LOG
|
||||
echo "Server Type: `servertype=$(lscpu | grep Hypervisor | wc -l); if [ $servertype -gt 0 ]; then echo "VitualMachine"; else echo "Physical"; fi`" >> $LOG
|
||||
echo -en '\n' >> $LOG
|
||||
|
||||
## Collecting Hardware Details ##
|
||||
echo " " >> $LOG
|
||||
echo "## Hardware Information" >> $LOG
|
||||
echo " " >> $LOG
|
||||
echo "Serial Number : `sudo lshal |grep system.hardware.serial`" >> $LOG
|
||||
echo "Serial Number : `sudo /usr/sbin/dmidecode -s system-serial-number`" >> $LOG
|
||||
echo "Serial Number : `sudo cat /sys/class/dmi/id/product_serial`" >> $LOG
|
||||
echo "Model Number : `sudo lshal |grep system.hardware.product`" >> $LOG
|
||||
echo "Model Number : `sudo /usr/sbin/dmidecode |grep "SKU Number"`" >> $LOG
|
||||
echo "Model Number : `sudo cat /sys/class/dmi/id/product_name`" >> $LOG
|
||||
echo "Hardware Vendor : `sudo lshal |grep system.hardware.vendor`" >> $LOG
|
||||
echo "Hardware Vendor : `sudo cat /sys/class/dmi/id/chassis_vendor`" >> $LOG
|
||||
echo "Hardware Info : `sudo dmesg |grep DMI`" >> $LOG
|
||||
|
||||
## Redhat Version ##
|
||||
echo " " >> $LOG
|
||||
echo "## OS Version" >> $LOG
|
||||
head -n1 /etc/issue >> $LOG
|
||||
cat /etc/redhat-release >> $LOG
|
||||
echo "Kernel Version: `uname -r`">> $LOG
|
||||
echo "OS Version: `hostnamectl | egrep "Operating System" | cut -d ' ' -f5-`" >> $LOG
|
||||
|
||||
## CPU Info ##
|
||||
echo " " >> $LOG
|
||||
echo " " >> $LOG
|
||||
echo "## CPU Information" >> $LOG
|
||||
grep "model name" /proc/cpuinfo |uniq >> $LOG
|
||||
COUNTT=$(cat /proc/cpuinfo |grep "model name" | wc -l)
|
||||
echo "$COUNTT Cores" >> $LOG
|
||||
|
||||
## RAM/MEMORY Info ##
|
||||
echo " " >> $LOG
|
||||
echo " " >> $LOG
|
||||
echo "## Memory Information" >> $LOG
|
||||
grep MemTotal /proc/meminfo >> $LOG
|
||||
y=`grep MemTotal /proc/meminfo |awk '{ print $2 }'`
|
||||
mb="$(( $y / 1024 ))"
|
||||
gb="$(( $mb / 1024 ))"
|
||||
echo "RAM : $gb GB" >> $LOG
|
||||
|
||||
## Swap Information ##
|
||||
echo " " >> $LOG
|
||||
echo "## Swap Information" >> $LOG
|
||||
y1=$(free -k |grep Swap |awk '{print $2}')
|
||||
mb1="$(( $y1 / 1024 ))"
|
||||
gb1="$(( $mb1 / 1024 ))"
|
||||
echo "Swap Size: $gb1 GB" >> $LOG
|
||||
|
||||
## Disk Information ##
|
||||
echo " " >> $LOG
|
||||
echo "## Disk Information" >> $LOG
|
||||
lsblk |grep -E 'part|disk' $LOG
|
||||
|
||||
## LVM Information ##
|
||||
echo " " >> $LOG
|
||||
echo "## Physical Volumes" >> $LOG
|
||||
pvs >> $LOG
|
||||
|
||||
echo " " >> $LOG
|
||||
echo "## Volume Groups" >> $LOG
|
||||
vgs >> $LOG
|
||||
|
||||
echo " " >> $LOG
|
||||
echo "## Logical Volumes" >> $LOG
|
||||
lvs >> $LOG
|
||||
echo " " >> $LOG
|
||||
|
||||
## Partition Information ##
|
||||
echo "## DF Command Output" >> $LOG
|
||||
echo " " >> $LOG
|
||||
df -Ph -x tmpfs -x devtmpfs| sed s/%//g | awk '{ if($5 > 0) print $0;}' >> $LOG
|
||||
|
||||
echo " " >> $LOG
|
||||
echo "## Port Information" >> $LOG
|
||||
ss -alntup |column -t |grep -E 'tcp|udp' >> $LOG
|
||||
|
||||
echo " " >> $LOG
|
||||
echo "## Service Information" >> $LOG
|
||||
systemctl list-units --type=service --state=active |grep -vE 'systemd|selinux' >> $LOG
|
||||
|
||||
echo " " >> $LOG
|
||||
echo "## Docker Containers" >> $LOG
|
||||
sudo docker ps -a >> $LOG
|
||||
|
||||
sudo cp /tmp/asset/`hostname`.txt /Inventory/`hostname`-`date "+%Y-%m-%d"`.txt
|
Reference in New Issue
Block a user