Informations :
Dates
- Publish : : Friday 03 april 2020
- Modification : Friday 03 april 2020
- 1006 views
Share :
Je vous met ici un script pour sauvegarder les comptes des utilisateurs de votre Webmail Zimbra .
Il faut créer le répertoire mkdir /opt/zimbra/backup
et lui attribuer les droits zimbra : chown zimbra.zimbra /opt/zimbra/backup
Puis executer le script suivant : backup-zimbra-usr.sh
Script avec 55 lignes
001#!/bin/bash
002#-------------------- INFORMATIONS -------------------------
003#
004# Description : Sauvegarde d'un utilisateur zimbra
005# Autheur : O.Romain Jaillet-ramey (orj@lab3w.fr)
006# Date-create : 20160614
007# Date-modify : 20231107
008#
009#-------------------- INFORMATIONS -------------------------
010 011DATE=`date +%Y-%m-%d-%H%M%S`
012BACKUP_FOLDER="/opt/zimbra/backup/"
013 014function import_compte()
015{
016USER=$1
017RESOLVE="skip modify reset replace"
018 019# https://wiki.zimbra.com/wiki/Zmmailbox
020# "skip" ignore les doublons d'anciens éléments, c'est aussi la résolution de conflit par défaut.
021# "modify" modifie les anciens éléments.
022# "reset" supprimera l'ancien sous-dossier (ou la boîte aux lettres entière si /).
023# "replace" les supprimera et les ressaisira.
024 025/opt/zimbra/bin/zmmailbox -z -m $USER -t 0 postRestURL -u https://10.104.0.1 "//?fmt=tgz&resolve=reset" /tmp/account.tgz
026# /opt/zimbra/bin/zmmailbox -z -m $USER -t 0 postRestURL "//?fmt=tgz&resolve=modify" /tmp/account.tgz
027}
028 029 030function backup_compte()
031{
032USER=$1
033 034/opt/zimbra/bin/zmmailbox -z -m $USER -t 0 getRestURL "//?fmt=tgz" > ${BACKUP_FOLDER}${USER}-$DATE.tar.gz
035 036}
037 038function backup_preferences()
039{
040USER=$1
041su - zimbra -c "zmprov getAccount $USER > ${BACKUP_FOLDER}${USER}-$DATE-settings.txt"
042}
043 044if [ $1 ]; then
045 046 047backup_compte
048backup_preferences
049 050fi
051 052 053if [ ! $1 ]; then
054echo "Utiliser: ./backup-zimbra-usr.sh user@domain.tld"
055fi
On attribue les droits d'execution au script :
chown u+x /root/backup-zimbra-usr.sh
et on lance le backup d'un utilisateur de cette manière /root/backup-zimbra-usr.sh user@domain.tld
Il y a aussi l'import postRestURL
de notre sauvegarde zimbra utilisateur ;)
Le paramètre resolve=
a plusieurs options :
Script avec 4 lignes
001"skip" ignore les doublons d'anciens éléments, c'est aussi la résolution de conflit par défaut.
002"modify" change d'anciens éléments.
003"reset" supprimera l'ancien sous-dossier (ou toute la boîte aux lettres si /).
004"replace" les supprimera et les réintroduira.
A la sauvegarde en plus de notre boîte mails, documents etc..
il y la configuration, les préférences liée à l'utilisateur dans le fichier user@domain.tld-date-settings.txt
Script avec 53 lignes
001# name user@domain.tld
002cn: O.Romain Jaillet-ramey
003description: Administrative Account
004displayName: O.Romain Jaillet-ramey
005givenName: O
006initials: Romain
007mail: user@domain.tld
008mail: alias1@domain.tld
009mail: alias2@domain.tld
010mail: alias3@domain.tld
011mail: alias4@domain.tld
012objectClass: inetOrgPerson
013objectClass: zimbraAccount
014objectClass: amavisAccount
015sn: Jaillet-ramey
016uid: o.romain.jaillet-ramey
017userPassword: VALUE-BLOCKED
018zimbraAccountStatus: active
019zimbraAdminAuthTokenLifetime: 12h
020zimbraAdminSavedSearches: Comptes en maintenance : (zimbraAccountStatus=*maintenance*)
021zimbraAdminSavedSearches: Comptes verrouillés : (zimbraAccountStatus=*lockout*)
022zimbraAdminSavedSearches: Comptes non actifs : (!(zimbraAccountStatus=*active*))
023zimbraAdminSavedSearches: Comptes Admin : (|(zimbraIsAdminAccount=TRUE)(zimbraIsDelegatedAdminAccount=TRUE))
024zimbraAdminSavedSearches: Comptes clôturés : (zimbraAccountStatus=*closed*)
025zimbraAdminSavedSearches: Comptes externes : (zimbraIsExternalVirtualAccount=TRUE)
026zimbraAdminSavedSearches: Comptes inactifs (90 jours) : (zimbraLastLogonTimestamp<=###JSON:{func: ZaSearch.getTimestampByDays, args:[-90]}###)
027zimbraAdminSavedSearches: Comptes inactifs (30 jours) : (zimbraLastLogonTimestamp<=###JSON:{func: ZaSearch.getTimestampByDays, args:[-30]}###)
028zimbraAllowAnyFromAddress: FALSE
029zimbraArchiveAccountDateTemplate: yyyyMMdd
030zimbraArchiveAccountNameTemplate: ${USER}-${DATE}@${DOMAIN}.archive
031zimbraArchiveEnabled: FALSE
032zimbraAttachmentsBlocked: FALSE
033zimbraAttachmentsIndexingEnabled: TRUE
034zimbraAttachmentsViewInHtmlOnly: FALSE
035zimbraAuthTokenLifetime: 2d
036zimbraAuthTokens: 1018345349|1585918982572|8.6.0_GA_1153
037zimbraAuthTokens: 208497761|1585919168531|8.6.0_GA_1153
038zimbraAuthTokens: 857057044|1585960591540|8.6.0_GA_1153
039zimbraAuthTokens: 1368127013|1585961413830|8.6.0_GA_1153
040zimbraBatchedIndexingSize: 20
041zimbraCalendarCalDavSharedFolderCacheDuration: 1m
042zimbraCalendarKeepExceptionsOnSeriesTimeChange: FALSE
043zimbraCalendarMaxRevisions: 1
044zimbraCalendarResourceDoubleBookingAllowed: TRUE
045zimbraCalendarShowResourceTabs: TRUE
046zimbraCommunityHomeURL: /integration/zimbracollaboration
047zimbraCommunityUsernameMapping: uid
048zimbraContactAutoCompleteEmailFields: email,email2,email3,workEmail1,workEmail2,workEmail3
049zimbraContactAutoCompleteMaxResults: 20
050zimbraContactEmailFields: email,email2,email3,email4,email5,email6,email7,email8,email9,email10,workEmail1,workEmail2,workEmail3
051zimbraContactMaxNumEntries: 10000
052zimbraContactRankingTableSize: 200
053zimbraCreateTimestamp: 20160713041109Z
Script utilisé sur la "Release 8.6.0.GA.1153.UBUNTU14.64 UBUNTU14_64 FOSS edition".
Plus rapide et plus simple lors des migrations ^^ ;) Merci aux développeu(r)(se)s ZM :)
Liens Web Zimbra :
- WiKi Zimbra - Command Usage Zmmailbox
- Zimbra Collaboration Security Center
- Evolix : Howto Zimbra - Très bonne documentation, très complète.
Cordialement,
Romain