#!/bin/bash
# clean up the /ftp/pub/incoming & outgoing/ directories
# of files and directories that are "$DAYS" days old
# except for the directories listed in $KEEPFILES

TEMP=/tmp/cleanftpio.$$
DAYS="+14"
KEEPFILES=/root/crons/cleanftpio/bin/cleanftpio.sed
LOG=/root/crons/cleanftpio/log/cleanftpio.log
find=/usr/bin/find

# This keeps the script from deleting /ftp/pub/incoming or /ftp/pub/outgoing.
touch /ftp/pub/outgoing/

echo "Starting cleanup `date`" >> ${TEMP}
echo "Logging to ${LOG}" >> ${TEMP}

# incoming & outgoing

for dir in outgoing
do
 echo "cleaning up $dir $DAYS days old" >> ${TEMP}
 for type in f d
 do
  $find /ftp/pub/$dir  -type $type -mtime $DAYS | sed -f $KEEPFILES |\
   while read FILE
    do
     ls -ld "$FILE" >> ${TEMP}
     rm -rf "$FILE"
    done
  echo >> ${TEMP}
 done
done

# requested by shell001 to keep files in the special60 directory for up to 60 days
echo "cleaning up outgoing/govs +14 days old" >> ${TEMP}
$find /ftp/pub/outgoing/govs/ -type f -mtime +14 | grep -v special60 |\
while read FILE
  do
   ls -l "$FILE" >> ${TEMP}
   rm -f "$FILE"
  done
echo >> ${TEMP}

echo "cleaning up outgoing/govs/special60 +60 days old" >> ${TEMP}
$find /ftp/pub/outgoing/govs/special60/ -type f -mtime +60 |\
while read FILE
  do
   ls -l "$FILE" >> ${TEMP}
   rm -f "$FILE"
  done
echo >> ${TEMP}

echo "cleaning up secure outgoing +2 days old" >> ${TEMP}
touch /srv/secure/docs/* /srv/secure/docs/spb/nielsen/ /srv/secure/docs/.in/*
$find /srv/secure/docs/ -type f -mtime +2 | sed -f $KEEPFILES |\
while read FILE
  do
   ls -l "$FILE" >> ${TEMP}
   rm -f "$FILE"
  done
echo >> ${TEMP}

echo "cleaning up secure incoming +14 days old" >> ${TEMP}
touch /srv/secure/incoming/*
touch /srv/secure/incoming/challenges/subco/
touch /srv/secure/incoming/challenges/subco/*
$find /srv/secure/incoming/ -type f -mtime +14 |\
while read FILE
  do
   ls -l "$FILE" >> ${TEMP}
   rm -f "$FILE"
  done
echo >> ${TEMP}

echo "End of cleanup `date`" >> ${TEMP}

/bin/mail -s "ftp cleanup results" asd.internet.staff@census.gov < ${TEMP}
cat ${TEMP} >> ${LOG}

rm -f ${TEMP}
