Need a shell script for FS maintenance

Hi, I am not really good at shell scripting. I usually cut and paste from other scripts and customize it to do what I need. I am running Oracle 10g on AIX 5.3 machine and I need a script that monitors a filesystem, I would say at least every hour by cron, and if the filesystem hits above 80% full then I want the script to start deleting the oldest files in the filesystem first until the filesystem is back down to 50% full.

I have scripts that monitor the filesystem, but the whole 80 to 50% thing is where I am stumped. I have this script which I use to check the FS size and then email me when it gets past a certain percentage, was hoping I could modify that one maybe:

#!/bin/sh

. /proddb/u01/app/oracle/dbtools/dba_email_list.sh
#echo $DBA_EMAIL

S=/proddb/u01/app/oracle/dbtools/
cat /dev/null > $S/filesystem%
df -k | egrep '/oraaudit' | awk '$4 ~ /^96%/ || $4 ~ /^97%/ || $4 ~ /^98%/ || $4 ~ /^99%/ || $4 ~ /^100%/' > $S/filesystem%
egrep -s "/" $S/filesystem%
case $? in
    0)
       mail -s  "Account Cust - file system above threshold on `hostname`" dbaemail@whatever.com < $S/filesystem%;;
    *)
       ;;

esac

. Anyone able to assist me? I would really appreciate it. Thanks.

Jim

My guess would be that the part where I need to do the rm -rf to start deleting would go right where the mail part is.

The following would deal with the filesystem used thresholds:

FILESYSTEM=/path/subpath
if [ `df -k ${FILESYSTEM} | grep -v Use | awk '{ print $5 }' | sed 's/%//'` -gt 80 ]; then
  while [ `df -k ${FILESYSTEM} | grep -v Use | awk '{ print $5 }' | sed 's/%//'` -gt 50 ]; do 
    # do your file deleting here 
    echo "FS is greater than 50% full."
  done
else
  echo "Filesystem not too full yet"
fi

This assumes the output from:
df -k /path/subpath
looks like:

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda5            109530708  31173952  72792648  30% /path

I'll leave the dangerous deleting of the oldest files bit to someone else!

Wow, thank you! I really appreciate you taking the time out to do that.

I use a script command like so to delete files older than 36 hours:

find /oraaudit -mtime +1.5 -exec rm -rf {} \;

I suppose it would be something like that but how to work in the fact that it should start with the oldest first is something I cant figure out.