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

BCKDIR="${HOME}/backup"
KEEPFILE_NR=30
PREFIX="backup-user_"
REMOVE=""

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

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 "  PREFIX(2)=${PREFIX}"
echo "  REMOVE(3)=${REMOVE}"
sleep 1

cd ${BCKDIR}
ls -1 | sed "s|${PREFIX}||g"|sed "s|-[0-9][0-9]||g"|cut -d\. -f1|sort -u|while read SUFFIX
do
  FILECNT=`ls -1 ${PREFIX}${SUFFIX}*|wc -l`
  REMOVECNT=`expr ${FILECNT} - ${KEEPFILE_NR}`
  if [ ${REMOVECNT} -lt 0 ]; then
    REMOVECNT=0
  fi  #
  echo "  ${PREFIX}${SUFFIX} (${FILECNT} - ${KEEPFILE_NR} = ${REMOVECNT} ):"
  echo "  FILECNT=${FILECNT} KEEPFILE_NR=${KEEPFILE_NR} REMOVECNT=${REMOVECNT}"
sleep 1
  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  # DOREMOVE

  done  # FNAME

done # SUFFIX


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

