Name : BETA-TESTERS
Project name : ZW3B-API-BETA-TESTERS
Authorized. - 200 - Client API Name and Origin Wildcard OK
Faire des sauvegardes des comptes utilisateurs Zimbra en étant administrateur de la machine.
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{ 016 USER=$1 017 RESOLVE="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{ 032 USER=$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{ 040 USER=$1 041 su - zimbra -c "zmprov getAccount $USER > ${BACKUP_FOLDER}${USER}-$DATE-settings.txt" 042} 043 044if [ $1 ]; then 045 046 047 backup_compte 048 backup_preferences 049 050fi 051 052 053if [ ! $1 ]; then 054 echo "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 :)
Cordialement,
Romain