#!/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 / 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"