initial commit of a *whole bunch* of old Egressive shell scripts, used to make many people redundant.
This commit is contained in:
commit
43e0f5b59e
329 changed files with 31937 additions and 0 deletions
8
egapachewatch/egapachewatch-cron
Executable file
8
egapachewatch/egapachewatch-cron
Executable file
|
@ -0,0 +1,8 @@
|
|||
#
|
||||
# egapachewatch, copyright 2007 egressive limited, www.egressive.com
|
||||
#
|
||||
# run system backups
|
||||
#
|
||||
# every 5 minutes
|
||||
*/5 * * * * root /etc/egscripts/egapachewatch/egapachewatch.sh
|
||||
|
139
egapachewatch/egapachewatch.sh
Executable file
139
egapachewatch/egapachewatch.sh
Executable file
|
@ -0,0 +1,139 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# count how many apache processes are running and warn us if it's getting high..
|
||||
SCRIPT=egapachewatch.sh
|
||||
VERSION=0.1
|
||||
#
|
||||
LOG=/var/log/egapachewatch.log
|
||||
TMP_DIR=/tmp
|
||||
DATE=`which date`
|
||||
MAIL=`which mail`
|
||||
RM=`which rm`
|
||||
NUMWARN=40
|
||||
#
|
||||
TODAY=`$DATE '+%Y-%m-%d-%a'`
|
||||
# determine today's date
|
||||
NOW=`$DATE '+%H-%M-%S'`
|
||||
# a timestamp for logging purposes
|
||||
#
|
||||
# function to direct a message...
|
||||
message() {
|
||||
#
|
||||
# a timestamp for logging purposes
|
||||
timestamp
|
||||
if test -w $LOG ; then
|
||||
echo "$SCRIPT: $TIMESTAMP $@" >> $LOG
|
||||
fi
|
||||
if test -w $TMP_EMAIL ; then
|
||||
echo "$SCRIPT: $TIMESTAMP $@" >> $TMP_EMAIL
|
||||
fi
|
||||
verbose "$TIMESTAMP $@"
|
||||
}
|
||||
#
|
||||
# function to direct a message...
|
||||
verbose() {
|
||||
if test $VERBOSE ; then
|
||||
echo "$@"
|
||||
fi
|
||||
}
|
||||
#
|
||||
# insert a blank line into the log and on the console
|
||||
insert_blank() {
|
||||
echo "" >> $TMP_EMAIL
|
||||
verbose ""
|
||||
}
|
||||
#
|
||||
# update date and time info..
|
||||
today() {
|
||||
# determine today's date
|
||||
TODAY=`$DATE '+%Y-%m-%d-%a'`
|
||||
}
|
||||
now() {
|
||||
# determine today's date
|
||||
NOW=`$DATE '+%H-%M-%S'`
|
||||
}
|
||||
timestamp() {
|
||||
# a timestamp for logging purposes
|
||||
TIMESTAMP=`$DATE '+%Y-%m-%d %H:%M.%S'`
|
||||
}
|
||||
#
|
||||
# create the temporary email file
|
||||
create_tmp_email() {
|
||||
if test -d $TMP_DIR ; then
|
||||
if test -w $TMP_DIR ; then
|
||||
touch $TMP_EMAIL 2>&1
|
||||
else
|
||||
error "Email tmp directory $TMP_DIR is not writable"
|
||||
fi
|
||||
else
|
||||
error "Email tmp directory $TMP_DIR does not exist"
|
||||
fi
|
||||
|
||||
if test -w $TMP_EMAIL ; then
|
||||
message "created temporary email $TMP_EMAIL"
|
||||
else
|
||||
error "Failed to create temporary email $TMP_EMAIL"
|
||||
fi
|
||||
}
|
||||
#
|
||||
# send the contents of the temporary file to the
|
||||
# designated report recipient
|
||||
send_email_report() {
|
||||
if test -f $TMP_EMAIL ; then
|
||||
message "sending email report to $EMAIL_TO"
|
||||
for EMAIL_ADD in $EMAIL_TO
|
||||
do
|
||||
RES=`$MAIL -s "$EMAIL_SUBJ" $EMAIL_ADD < $TMP_EMAIL`
|
||||
if test -z $RES ; then
|
||||
if test $ERROR_STATUS == 1 ; then
|
||||
message "Error email report successfully sent to $EMAIL_ADD"
|
||||
else
|
||||
message "Email report successfully sent to $EMAIL_ADD"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
if test -w $TMP_EMAIL ; then
|
||||
$RM $TMP_EMAIL 2>&1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# modified dave@egressive.com 20071029
|
||||
max_clients() {
|
||||
NUMAVAIL=`grep -A 8 "IfModule prefork.c" /etc/apache2/apache2.conf | grep "^MaxClients" | awk '{print $2;}'`
|
||||
# An email will be sent if the number of processes running is greater than ($NUMAVAIL - $NUMWARN)
|
||||
# As of 20071025, MaxClients was set to 150 this may be outrageously high for the amount
|
||||
# of memory on the server, so NUMWARN is set high too . . .
|
||||
}
|
||||
|
||||
TMP_EMAIL=$TMP_DIR/$SCRIPT"_tmp_email_"$TODAY.$NOW
|
||||
EMAIL_TO="support@egressive.com"
|
||||
NUMPROC=`ps auxwww | grep -c "apache2"`
|
||||
max_clients
|
||||
NUMWARNLEVEL=$[$NUMAVAIL - $NUMWARN]
|
||||
MACHINE_NAME="geprod"
|
||||
ERROR_STATUS=0
|
||||
|
||||
#
|
||||
# set up alert
|
||||
if ! test -f $TMP_EMAIL ; then
|
||||
touch $TMP_EMAIL
|
||||
fi
|
||||
if ! test -f $LOG ; then
|
||||
touch $LOG
|
||||
fi
|
||||
|
||||
message " " # blank line
|
||||
message "running $NOW"
|
||||
#NUMAVAIL=1
|
||||
message "current number of processes $NUMPROC out of $NUMAVAIL"
|
||||
if [ $NUMPROC -ge $NUMWARNLEVEL ] ; then
|
||||
message "sending email alert!"
|
||||
EMAIL_SUBJ="ALERT - $MACHINE_NAME - exceeding num apache processes!"
|
||||
send_email_report
|
||||
fi
|
||||
now
|
||||
message "completed run"
|
||||
|
||||
exit 0
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue