Sous Zimbra, il est possible d’exporter une boite mail d’un utilisateur. Dans mon cas, je vais exporter la boite dans /tmp
1- Exportation
Pour exporter une boite utilisateur, saisir la commande suivante :
1 |
/opt/zimbra/bin/zmmailbox -z -m NOM.UTILISATEUR getRestURL "//?fmt=tgz" > /tmp/account.tgz |
- skip : ignore les doublons
- modify : modifie les anciens éléments
- reset : supprime tout (dossiers, éléments) avant import
- replace : supprime les éléments avant import
2- Importation de la boite
1 |
/opt/zimbra/bin/zmmailbox -z -m NOM.UTILISATEUR postRestURL "//?fmt=tgz&resolve=reset" /tmp/account.tgz |
3- Script
Pour automatiser cette tâche à l’ensemble des utilisateurs du serveur Zimbra, faire un script qui s’appuie sur un fichier texte contenant tous les noms d’utilisateur.
Dans mon cas, je vais créer le script dans /home/Scripts. Les exports se feront dans /opt/zimbra/backup.
Créer les dossiers Scripts
1 |
mkdir /home/Scripts |
Se déplacer dans le dossier Sauvegardes
1 |
cd /home/Scripts |
Création du script
1 |
nano export_mailbox.sh |
Saisir le code ci-dessous puis enregistrer le fichier
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#!/bin/bash # Script export des boites mail # Auteur : POMENTE Guillaume # Site Web : www.guillaume-p.net # Declaration des variables BACKUPDIR="/opt/zimbra/backup" BACKUPLOG="/var/log/Sauvegardes" USER="/home/Scripts/user" DATE=$(date +%Y%m%d) HEURED=$(date +%Hh:%Mm:%Ss) # Suppression des fichiers existant dans le repertoire BACKUPDIR rm $BACKUPDIR/* # Saisie de l'heure de debut et creation du fichier de LOG echo "##### Debut de la sauvegarde a" $HEURED "#####" > ${BACKUPLOG}/sauvegarde_${DATE}.log # Lecture du fichier texte ligne par ligne puis sauvegarde au format TGZ while read ligne do /opt/zimbra/bin/zmmailbox -z -m ${ligne} getRestURL "//?fmt=tgz" > ${BACKUPDIR}/${ligne}_${DATE}.tgz echo ${ligne}_${DATE} OK >> ${BACKUPLOG}/sauvegarde_${DATE}.log done < /home/Scripts/user # Saisie de l'heure de fin HEUREF=$(date +%Hh:%Mm:%Ss) echo "##### Fin de la sauvegarde a" $HEUREF "#####" >> ${BACKUPLOG}/sauvegarde_${DATE}.log |
Créer un fichier user contenant les noms d’utilisateur sous cette forme
Se déplacer dans Scripts
1 |
cd /home/Scripts |
Création du fichier utilisateur
1 |
nano user |
1 2 3 |
utilisateur1 utilisateur2 utilisateur3 |
Rendre le script executable
1 |
chmod +x export_mailbox.sh |
Exécution du script
1 |
./export_mailbox.sh |
Pour automatiser un export il suffit de le rajouter dans la crontab. Dans mon cas, un export est effectué tous les jours à 20H.
1 |
nano /etc/crontab |
1 |
0 20 * * * root /home/Scripts/export_mailbox.sh |
Redémarrer la cron
1 |
/etc/init.d/cron restart |
Aprés avoir effectué différents tests, il est possible d’exporter des boites sous Zimbra OSE 6.0.5 puis les importer sur Zimbra OSE 8.
On peux donc imaginer que cet outil puisse servir à une migration ou une sauvegarde de la version OSE de Zimbra si votre installation n’héberge pas des centaines de boite à 10Go chacune ! :).
Auteur : POMENTE Guillaume
Partager la publication "EXPORTER / IMPORTER UNE BOITE UTILISATEUR ZIMBRA AU FORMAT TGZ"