
#!/bin/sh
# File	: clean_logdir.sh.sh
# By	: Maarten.deBoer@atos.net, 140925
# Subject	: Script to clean logdir by moving to .n logfiles
PGM="`basename $0|cut -d\. -f1`"
TMP="/tmp/${PGM}.$$"
VER="0.1"
LOG="${HOME}/log/${PGM}.log"
HOSTNAME="`hostname|cut -d\. -f1`"

LOGDIR="${HOME}/log"
MAXLOGSIZE=1024   # In K's

USAGE()
{
  echo "Usage: ${PGM} [<options>]"
  echo "  Version: ${VERSION}"
  echo "  options:"
  echo "    -d          : logDir (${LOGDIR})"
  echo "    -h | --help : this help"
  echo "    -V          : Version"
  echo "    -x          : set -x"
}
# Check options
while [ ${#} -gt 0 ]
  do
  case ${1} in
    -d) LOGDIR=${2}; shift ;;
    -h | --help) USAGE; exit 1 ;;
    -V) echo "${PGM}: v${VERSION}"; exit 3 ;;
    -x)  set -x ;;
    *)  echo "Option ${1} not known."; USAGE; exit 1 ;;
  esac
    shift
done

echo "LOGDIR=${LOGDIR}"
# Check if LOGDIR exists
if [ ! -d ${LOGDIR} ]; then
  echo "  ${LOGDIR} does NOT exist. Exiting ..."|tee -a ${LOG}
  exit 2
fi
touch ${TMP}
echo "`date` ${PGM} v${VER} started with LOGDIR=${LOGDIR}."|tee -a ${LOG}


# Get a list of Only.log-files in LOGDIR. Otherwise .0 .. .9 files are cleaned as well
ls -1 ${LOGDIR}/*.log| while read FILE LINE
do
  echo "${FILE}"
  FILESIZE=`du -ka ${FILE}|cut -f1`
  if [ ${FILESIZE} -ge ${MAXLOGSIZE} ]; then
    echo "  ${FILE} with ${FILESIZE}k will be moved"|tee -a ${LOG}
# Move old files first. And suppress ERROR-output
    rm ${FILE}.9 2>/dev/null
    mv ${FILE}.8 ${FILE}.9 2>/dev/null
    mv ${FILE}.7 ${FILE}.8 2>/dev/null
    mv ${FILE}.6 ${FILE}.7 2>/dev/null
    mv ${FILE}.5 ${FILE}.6 2>/dev/null
    mv ${FILE}.4 ${FILE}.5 2>/dev/null
    mv ${FILE}.3 ${FILE}.4 2>/dev/null
    mv ${FILE}.2 ${FILE}.3 2>/dev/null
    mv ${FILE}.1 ${FILE}.2 2>/dev/null
    mv ${FILE}.0 ${FILE}.1 2>/dev/null
# cp in stead of mv. So rights of orig.file keep intact. And then empty orig-file
    cp ${FILE} ${FILE}.0
    cp /dev/null ${FILE}
  fi


done




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

