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 :
/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
/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
mkdir /home/Scripts
Se déplacer dans le dossier Sauvegardes
cd /home/Scripts
Création du script
nano export_mailbox.sh
Saisir le code ci-dessous puis enregistrer le fichier
#!/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
cd /home/Scripts
Création du fichier utilisateur
nano user
utilisateur1
utilisateur2
utilisateur3
Rendre le script executable
chmod +x export_mailbox.sh
Exécution du script
./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.
nano /etc/crontab
0 20 * * * root /home/Scripts/export_mailbox.sh
Redémarrer la cron
/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"