Archiviazione mensile mail

Questo script archivia la posta più vecchia di un mese in un file compresso, nominato con il nome del mese, di volta in volta.

#!/bin/bash
#touch -t 0701010001 /tmp/mailmark
touch -t $(date +%y%m%d --date='-1 month')0001 /tmp/mailmark
find /home/utente/Maildir/.ZBackup/cur/ ! -newer /tmp/mailmark -type f > lista
tar -cjv --remove-files -T lista -f /media/hdc1/backup/mailbackup/$(date +Backup_%y_%m.tar.bz2 --date '-1 month -1 day')
rm /tmp/mailmark
rm lista

La seconda riga dello script può essere usata al posto della terza, nel caso in cui vogliamo far partire lo script in modo manuale. Il comando touch modifica il file /tmp/mailmark (nell’esempio) alle ore 00:01 del 01-01-07, quindi tutte le mail presenti nella cartella ZBackup di maildir, più vecchie di quel momento verranno archiviate.
Nel caso invece si voglia un esecuzione automatica, abilitare la terza riga (e commentare la seconda), questa crea un touch vecchio di un mese rispetto all’esecuzione, quindi schedulando lo script con crontab ogni primo del mese, avremo un backup delle mail più vecchie di un mese.

Comments are closed.