
#!/bin/sh
# File	: backup-purge.sh
# By	: MaartenDeBoer.nl, 241016
# Subject	: Script to purge files in BCKDIR
PGM=`basename $0|cut -d\. -f1`
VER="0.1"
LOG="${HOME}/log/${PGM}.log"

BCKDIR="/home/maarten/backup"
KEEPFILE_NR=30
PREFIX="backup-user_"
REMOVE=""

if [ "${1}" != "" ]; then
  KEEPFILE_NR=${1}
fi  # $1
if [ "${2}" != "" ]; then
  REMOVE=${2}
fi  # $1

echo "`date` ${PGM} v${VER} started."|tee -a ${LOG}
echo "  BCKDIR=${BCKDIR}"|tee -a ${LOG}
echo "  KEEPFILE_NR(1)=${KEEPFILE_NR}"|tee -a ${LOG}
echo "  REMOVE(2)=${REMOVE}"
sleep 1

cd ${BCKDIR}
ls -1 | sed "s|${PREFIX}||g"|sed "s|[0-9]||g"|cut -d\. -f1|sort -u|while read SUFFIX
do
  FILECNT=`ls -1 ${PREFIX}${SUFFIX}*|wc -l`
  REMOVECNT=`expr ${FILECNT} - ${KEEPFILE_NR}`
  echo "  ${PREFIX}${SUFFIX} (${FILECNT} - ${KEEPFILE_NR} = ${REMOVECNT} ):"
  ls -1tr ${PREFIX}${SUFFIX}*|head -${REMOVECNT}|while read FNAME
  do
    echo "  ${FNAME} will be removed..."
    if [ "${REMOVE}" = "remove" ]; then
      rm ${FNAME}
      EC=${?}
      echo "    ${FNAME} is removed (${EC})"|tee -a ${LOG}
    fi  # REMOVE

  done  # FNAME

done # SUFFIX


echo "`date` ${PGM} v${VER} finished."|tee -a ${LOG}
exit 0

