#!/bin/bash
#
#Snapshot_Stats - produces a report for system stats
# This report will mail to root.
# Command :free,uptime,exec
#############################################################
#Set Script Variables
#
DATE=`date +%d"-"%m"-"%Y`
DISK_TO_MONITOR="/dev/sda1 /dev/sda2"
MAIL=`which mail`
MAIL_TO=root
REPORT=/home/ach/data-file/monitor-system$DATE.rpt
#
################################################################
#Create Report File
#
exec >& # Save file descriptor
#
exec > $REPORT # direct output to rpt file.
###############################################################
#
echo
echo -e "\t\tDaily System Report"
echo
#
###############################################################
#Date Stamp the Report
#
echo "Today is $DATE"
echo
#
###############################################################
# ) Gather System Uptime Statistics
#
echo -e "System has been \c"
uptime | sed -n '/,/s/,/ /gp' |
gawk '{
== =="days")
{print $,$,$,$}
else
{print $,$}
}'
#
##############################################################
# ) Gather Disk Usage Statistics
#
echo
for DISK in $DISK_TO_MONITOR #loop to check disk space
do
echo -e "$DISK usage : \c"
df -h $DISK | sed -n '/% \//p' | gawk '{print $5}'
done
#
###################################################################
# )Gather Memory Usage Statistics
#
echo
echo "Memory Usage :"
#
free | sed -n '2p' |
gawk 'x = int(($3 / $2)*100)
{print x}' |
sed 's/$/%/'
echo
#
#
##################################################################
# ) Gather Number of Zombie Processes
#
echo
ZOMBIE_CHECK=`ps -al | gawk '{print $2,$4}' | grep Z`
#
if [ "$ZOMBIE_CHECK" = "" ]
then
echo "No Zombie Process on System at this Time."
else
echo "Current System Zombie Processes"
ps -al | gawk '{print $2,$4}' | grep Z
fi
echo
#
###################################################################
# Restore File Descriptor & Mail Report
#
exec >& # Restore output to STDOUT
#
$MAIL -s "System Statistics Report for $DATE" $MAIL_TO < $REPORT
#
###################################################################
# Clean up
#
#rm -f $REPORT
#
#END