Gmail: backup con getmail

Prendendo spunto da http://www.mattcutts.com/blog/backup-gmail-in-linux-with-getmail/ riporto alcune note su come ho implementato il backup del mio account gmail sul mio mini server Debian 5 Lenny:

Su Gmail, andando in “Impostazioni / Inoltro e Pop/IMAP” , abilitare il permesso per scaricare la posta tramite protocollo POP e impostare che i messaggi non vengano cancellati dopo il download.

Da root, installare getmail:

apt-get install getmail4

Creare la directory che conterrà la configurazione di getmail:

mkdir ~/.getmail

Creare la directory che conterrà il backup e le directory dedicate al formato Maildir con il quale verranno salvate le mail:

mkdir ~/gmail-archive
mkdir ~/gmail-archive/tmp ~/gmail-archive/new ~/gmail-archive/cur

Creare il file di configurazione ~/.getmail/getmail.gmail e inserire il seguente la seguente contenuto:

[retriever]
type = SimplePOP3SSLRetriever
server = pop.gmail.com
username = username@gmail.com
password = passwordgmail
 
[destination]
type = Maildir
path = ~/gmail-archive/
 
[options]
# print messages about each action (verbose = 2)
# Other options:
# 0 prints only warnings and errors
# 1 prints messages about retrieving and deleting messages only
verbose = 2
message_log = ~/.getmail/gmail.log

A questo punto è possibile fare il download delle mail con il seguente comando:

getmail -r ~/.getmail/getmail.gmail

Siccome Google limita il download a poche mail per connessione, il comando andrà ripetuto fin quando non saranno state scaricate tutte le mail. Io ho realizzato lo script backup_gmail.sh, riportato di seguito, che automatizza tale processo:

#!/bin/sh
while true; do
  echo "##### `date` #### Backup messaggi gmail"
  getmail -r /home/david/.getmail/getmail.gmail | grep "  0 messages (0 bytes) retrieved" 1> /dev/null
  if [ $? == 0 ]; then
    break;
  fi
  sleep 10
done

Lo script appena riportato potrà essere inserito nel crontab in modo da sincronizzare il backup nottetempo.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *