Doug,
First read the man page on logrotate.
I am not much of a programer, but the below script is a hack at doing what it sounds like you want. Just change it to suit your needs and put it in a cront job.
--------------------------------START HERE-----------------------------------
!/bin/ksh
#
#set defaults
# Set date & time stamp
date=`date|cut -c5-11,25-|sed 's/\([0-9]\{1,2\}\)/\1,/'`
time=`date +"%D"|sed 's/0//'`
time2=`date +%d/%b/%Y`
#
cat /var/log/messages|grep INVADING|grep "$time"> /var/log/test.log
cat /var/log/httpd/access_log|grep "$time2">> /var/log/test.log
#
#
# Control File Size
#
big=`ls -l /var/log/test.log |awk '{print $5}'`
if [ "$big" -gt 600 ]
then
echo "test log is $big in size as of `date +"%D %T"`" | mail -s "Test HTML log File `date +"%D %T"`" root
tar cfz /var/log/test.log.tar.gz /var/log/test.log
sleep 2
mv /var/log/test.log.tar.gz /var/log/test.log.tar.gz.`date +%Y.%m.%d`
sleep 2
#mv /var/log/test.log.tar.gz* /var/log/OLD/
ls -lh /var/log/test* | mail -s "Test HTML log File `date +"%D %T"`" root
#ls -lh /var/log/OLD/test*| mail -s "Test HTML log File `date +"%D %T"`" root
else
echo "Test HTML log file is good at $big"| mail -s "Test HTML log File is good at $big on `date +"%D %T"`" root
fi
|