Files
dms-knusperkerne/tools/check_mail_usage.sh
2025-11-20 22:32:15 +01:00

43 lines
1004 B
Bash
Executable File

#!/usr/bin/env bash
#
# check_mail_usage.sh
#
# Checks Maildir usage by executing du inside the Docker-Mailserver container.
#
# Usage:
# ./check_mail_usage.sh
#
CONTAINER="mailserver"
MAILDIR="/var/mail"
echo "Scanning Maildir sizes inside container '$CONTAINER' ..."
echo
TMPFILE=$(mktemp)
# List <domain>/<user> directories inside container
docker exec "$CONTAINER" bash -c "
find $MAILDIR -mindepth 2 -maxdepth 2 -type d
" | while read -r DIR; do
SIZE_MB=$(docker exec "$CONTAINER" bash -c "du -sm \"$DIR\" | awk '{print \$1}'")
USER=$(basename "$DIR")
DOMAIN=$(basename "$(dirname "$DIR")")
echo \"$SIZE_MB MB $USER@$DOMAIN\" >> "$TMPFILE"
done
echo "======================"
echo " MAILDIR USAGE"
echo "======================"
echo
sort -nr "$TMPFILE" | head -n 10
echo
echo "----------------------"
TOTAL=$(docker exec "$CONTAINER" bash -c "du -sm $MAILDIR | awk '{print \$1}'")
echo "Total mail storage used: $TOTAL MB"
echo "----------------------"
rm "$TMPFILE"