mirror of https://github.com/fengyuhetao/shell.git
93 lines
2.0 KiB
Bash
93 lines
2.0 KiB
Bash
#!/bin/bash
|
|
#
|
|
# Snapshot_Stats - produces a report for system stats
|
|
#
|
|
##############################################
|
|
#
|
|
# Set Script Variables
|
|
#
|
|
DATE=`date +%m%d%y`
|
|
DISKS_TO_MONITOR="/dev/sda1"
|
|
MAIL=`which mutt`
|
|
MAIL_TO=tiandi
|
|
REPORT=/home/tiandi/Documents/Snapshot_Stats_$DATE.rpt
|
|
#
|
|
####################################################
|
|
#
|
|
# Create Report File
|
|
#
|
|
exec 3>&1 # Save file descriptor
|
|
#
|
|
exec 1> $REPORT # direct output to rpt file
|
|
#
|
|
###################################################
|
|
#
|
|
echo
|
|
echo -e "\t\tDaily System Report"
|
|
echo
|
|
#
|
|
###################################################
|
|
# Date Stamp the Report
|
|
#
|
|
echo -e "Today is" `date +%m%d%y`
|
|
echo
|
|
#
|
|
##################################################
|
|
#
|
|
#1) Gather System Uptime Statistics
|
|
#
|
|
echo -e "System has been \c"
|
|
uptime | sed -n '/,/s/,/ /gp' | gawk '{if($4 == "days" || $4 == "day") {print $2,$3,$4,$5} else {print $2,$3}}'
|
|
#
|
|
#################################################
|
|
#
|
|
#2) 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
|
|
#
|
|
##################################################################
|
|
#
|
|
#3) Gather Memory Usage Statstics
|
|
#
|
|
echo
|
|
echo -e "Memory Usage: \c"
|
|
#
|
|
free | sed -n '2p' | gawk 'x = int(($3 / $2) * 100) {print x}' | sed 's/$/%/'
|
|
#
|
|
###############################################################
|
|
#
|
|
#4) 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 1>&3 # Restore output to STDOUT
|
|
#
|
|
#$MAIL -a $REPORT -s "System Sstatistics Report for $DATE"
|
|
#-- $MAIL_TO < /dev/null
|
|
#
|
|
###############################################################
|
|
#
|
|
# Clean up
|
|
#
|
|
#rm -f $REPORT
|
|
#
|