Sauvegarde incrémentale et automatisé de votre compte Gmail
Date: 22/08/2012 | Catégories: Blog,Open-source,Planet-libre,Web | Tags: backup,gmail
Les prophètes du Web avaient prédit la fin des mails avec l'arrivée des réseaux sociaux. Force est de constater que la messagerie électronique "classique" est toujours bien ancrée dans les moeurs. Pour une utilisation personnelle, la messagerie GMail de Google fait office de leader sur le marché. J'ai personnellement plus de 3 Go d'archives de mail sur mon compte personnel. Bien que très stable, le service de Google n'est pas à l'abri d'une perte de vos précieux messages. Nous allons donc voir dans ce billet comment conserver une archive locale de votre compte Gmail en utilisant le logiciel libre GetMail. GetMail est distribué sous licence GPL version 2 et il est disponible dans les dépôts des principales distributions GNU/Linux.
La procédure suivante va nous permettre de faire une sauvegarde incrémentale (seul les nouveaux messages sont téléchargés) d'un compte Gmail accessible via le protocole IMAP sur une machine Debian Squeeze (mais la procédure est la même sous Ubuntu).
Installation et configuration initiale de Getmail
On commence par installer le logiciel:
sudo apt-get install getmail4
On créé ensuite les sous-répertoires suivants (à adapter à votre configuration):
- ~/.getmail: va contenir les fichiers de configuration de Getmail (un fichier par compte)
- ~/backup/gmail: est le répertoire de destination ou la sauvegarde va être faite
En utilisant les commandes suivantes:
mkdir ~/.getmail mkdir ~/backup/gmail
On passe ensuite à la création du fichier de configuration (~/.getmail/getmail.gmail) pour notre compte Gmail. Ce dernier doit contenir les lignes suivantes:
[retriever] type = SimpleIMAPSSLRetriever server = imap.gmail.com username = user@gmail.com password = password mailboxes = ("inbox",) port = 993 [destination] type = Mboxrd path = ~/backup/gmail/user.mbox [options] received = false delivered_to = false read_all = false verbose = 0
Je vous laisse modifier ce fichier avec vos propres informations.
On s'empresse de protéger ce fichier des regards extérieurs:
chmod 700 ~/.getmail/getmail.gmail
Comme vous pouvez le voir dans cette même configuration, j'ai choisi d'utiliser le format Mboxrd qui est un standard reconnu par la plupart des logiciels. Getmail doit disposer d'une archive vide avec les bons droits avant de le lancer pour la première fois. On utilise donc la commande suivante pour le satisfaire:
touch ~/backup/gmail/user.mbox
Lancement initial de Getmail
Je vous conseille de faire le premier lancement de Getmail depuis une console pour voir les éventuels messages d'erreurs.
getmail -r ~/.getmail/getmail.gmail
Il est possible, notamment si vous lancé Getmail depuis un serveur n'ayant jamais fait de connexions clientes IMAP vers GMail, que Google bloque l'accès et que Getmail retourne un message du style:
IMAP error during logout (command CLOSE illegal in state AUTH, only allowed in states SELECTED)
Pour résoudre se problème il faut se connecter sur votre compte Gmail (à partir de n'impote qu'elle machine) puis de cliquer sur le bandeau rouge en haut de l'écran:
Puis de valider votre connexions:
Vous avez alors 10 minutes pour relancer la première commande de ce paragraphe.
Si il n'y a pas d'erreur, alors le téléchargement des fichiers vers votre archive (fichier unique) devrait commencer. vous pouvez aller prendre un café, ou plusieurs, selon la taille de votre compte GMail. Je vous conseille de prévoir un espace disquelégérement supérieur à l'information donnée par Gmail en bas du WebMail (fichier archive de 4 Go pour 3 Go affiché dans Gmail). En effet, l'archivage implique l'ajout d'un "overhead" assez important.
Note: Même depuis mon serveur OVH connecté à 100 Mbps sur Internet, je ne dépasse pas les 1 Mbps lors de l'archivage, surement une limite des serveurs Google et/ou du protocole IMAP.
Automatiser la sauvegarde
"Sauvegarder, c'est bien, automatiser la sauvegarde c'est mieux." [Nicolargo]
Une petite ligne ajoutée à votre crontab système va permettre d'automatiser la sauvegarde incrémentale de votre compte Gmail. Personnellement, je la déclenche toutes les nuits à 1h du matin.
# crontab -e 0 1 * * * getmail -r ~/.getmail/getmail.gmail
Vous voilà maintenant plus tranquille avec une archive bien à vous de vos (g)mails !