#!/bin/bash

BACKUP_DIR="/backup"
THRESHOLD=95

# Ambil usage disk untuk partition tempat /backup berada
USAGE=$(df -P "$BACKUP_DIR" | awk 'NR==2 {gsub("%",""); print $5}')

echo "$(date) - Disk usage: ${USAGE}%" >> /var/log/auto-clean-backup.log

# Jika disk usage >= threshold
while [ "$USAGE" -ge "$THRESHOLD" ]; do
    # Cari folder tertua (hanya folder, exclude file)
    OLDEST_DIR=$(ls -1d ${BACKUP_DIR}/20* 2>/dev/null | sort | head -n 1)

    # Jika tidak ada folder backup
    if [ -z "$OLDEST_DIR" ]; then
        echo "$(date) - Tidak ada folder backup untuk dihapus" >> /var/log/auto-clean-backup.log
        exit 0
    fi

    echo "$(date) - Menghapus backup tertua: $OLDEST_DIR" >> /var/log/auto-clean-backup.log
    rm -rf "$OLDEST_DIR"

    sleep 2

    # Update ulang usage disk
    USAGE=$(df -P "$BACKUP_DIR" | awk 'NR==2 {gsub("%",""); print $5}')
done
