Add script to cronjob
*/5 * * * * /usr/bin/bash /bin/mailq_cleaner.sh > /dev/null 2>&1
| #!/bin/bash | |
| CURRENT_TIME=$(date +%s) | |
| mailq | awk '/^[A-F0-9]/ {print $1, $3, $4, $5}' | while read -r ID MONTH DAY TIME; do | |
| MESSAGE_DATE="$MONTH $DAY $TIME $(date +%Y)" | |
| MSG_TIMESTAMP=$(date -d "$MESSAGE_DATE" +%s 2>/dev/null) | |
| if [ $? -ne 0 ]; then | |
| echo "Invalid date format for message ID: $ID" | |
| continue | |
| fi | |
| AGE=$((CURRENT_TIME - MSG_TIMESTAMP)) | |
| if [ "$AGE" -gt 300 ]; then | |
| echo "Removing message ID: $ID (Age: $((AGE / 60)) minutes)" | |
| postsuper -d "$ID" | |
| fi | |
| done | |
| echo "Cleanup complete: Removed messages older than 5 minutes." |
Ajoyib