Backup maildir con notifica dettagliata

Lo scopo di questo script è di creare un backup tar.gz della cartella maildir di ogni utente, posizionandolo nella cartella home dell’utente stesso. Inoltre avvisa con una mail riepilogativa la dimensione e la quantità di messaggi cancellabili, in modo da poter intervenire e risolvere eventuali criticità di spazio utilizzato.

#!/bin/bash
date '+Maildir backup del %d.%m.%Y %a inizio ore %R' > /root/backup_maildir.log
echo "" >> /root/backup_maildir.log
echo "" >> /root/backup_maildir.log
echo -e "Utente\\t\\tCompleato\\tSpam\\t\\tTrash\\t\\tDimensione" >> /root/backup_maildir.log
echo "" >> /root/backup_maildir.log
for X in /home/* ; do
        if [ ! "$X" = "/home/utente_principale" ] ; then
                rm $(echo $X)/mdbk_$(echo $X | awk -F / {'print $3'}).tar.gz
                tar -czf $(echo $X)/mdbk_$(echo $X | awk -F / {'print $3'}).tar.gz $(echo $X)/Maildir/
                echo -e -n $(echo $X | awk -F / {'print $3'})"    "\\t >> /root/backup_maildir.log
                echo -e -n $(date '+%R')\\t\\t >> /root/backup_maildir.log
                echo -e -n $(find $(echo $X)/Maildir/.Spam/cur/ | grep -c \n)\\t\\t >> /root/backup_maildir.log
                echo -e -n $(find $(echo $X)/Maildir/.Trash/cur/ | grep -c \n)\\t\\t >> /root/backup_maildir.log
                echo -e $(du -s -BMB $X/Maildir | awk -F " " {'print $1'}) >> /root/backup_maildir.log
        fi
done
echo "" >> /root/backup_maildir.log
date '+Maildir backup del %d.%m.%Y %a fine ore %R' >> /root/backup_maildir.log
cat /root/backup_maildir.log | /usr/bin/nail -s "$(date '+Maildir backup del %d.%m.%Y %a')" admin@example.com

Da notare che il backup non viene fatto per la cartella “utente_principale” che di norma è l’utente utilizzato per amministrare il sistema, ma che in questo caso non possiede una casella di posta. Infine la mail di notifica è mandata a admin@example.com incaricato di monitorare il processo schedulato.

Comments are closed.