#!/bin/sh

BUDGET_MB=600
CURRENT_LOG_MAX_MB=200
ARCHIVE_MAX_MB=$((BUDGET_MB-CURRENT_LOG_MAX_MB))

[ -r /etc/sysconfig/logrotate ] && . /etc/sysconfig/logrotate

verbose=0
[ "$1" = -v ] && verbose=1

while : ; do
  set -- $(du -sm /var/log)
  usage=$1
  [ $usage -lt $ARCHIVE_MAX_MB ] && break
  oldest=$(ls -t /var/log/*[0-9] /var/log/*[0-9].gz 2>/dev/null | tail -n1)
  [ -n "$oldest" ] || break
  logger -t logrotate "Removing ${oldest}, archived ${usage}MB greater than budget ${ARCHIVE_MAX_MB}MB"
  [ $verbose -eq 1 ] && echo "Removing ${oldest}, archived ${usage}MB greater than budget ${ARCHIVE_MAX_MB}MB"
  rm -f "$oldest"
done
