#!/bin/sh
# File:       mf-memory
# Version:    1.11
# Purpose:    Records filter memory usage
# Written by: R.Butler <butlerra@sbu.ac.uk>
# Date:       19-Jun-2000
# Revised:    06-Jul-2000
#
# Copyright (C) 2000 South Bank University, London
# (Please see the full copyright notice in 'copyright.txt')

# Get the WORK_DIR variable from mail-filter.conf
CONF_FILE="/usr/local/etc/mail-filter/mail-filter.conf"
. $CONF_FILE

# The filter name is specified on the command line
FILTER=$1
if [ -z "$FILTER" ] 
then
   echo "Usage:"
   echo " "
   echo "   [nohup] [path]`basename $0` filter-name [&]"
   echo " "
   exit 1
fi

LOGFILE="${WORK_DIR}/`basename ${0}`.log"
TMPFILE="${WORK_DIR}/`basename ${0}`.tmp"

# LOG_INTERVAL is the number of seconds between samples
LOG_INTERVAL=900

# MAX_LOG is the number of records to keep in the file
MAX_LOG=500

while :
do
   FILTER_MEM=`ps aux | grep $FILTER \
              | grep -v $0 | grep -v 'mf-start' \
              | grep -v 'grep' | grep -v 'vi' \
              | awk '{print $5}'`
   DATE=`date +"%d-%b-%Y %T"`
   echo "$DATE : ${FILTER_MEM}" >> $LOGFILE
   tail -$MAX_LOG $LOGFILE > $TMPFILE
   mv $TMPFILE $LOGFILE
   sleep $LOG_INTERVAL 
done


