Eseguire il backup e il ripristino di una casella di posta Zimbra CE utilizzando le esportazioni TGZ.

Per eseguire il backup di una casella di posta Zimbra Community Edition (CE), esportala come file TGZ con zmmailbox getRestURL, convalida l'archivio e ripristinalo con postRestURL. Quando importi in un account che contiene già posta, inizia con resolve=skip; l'utilizzo resolve=resetdi nella directory principale della casella di posta può rimuovere gli elementi esistenti.

Comprendere cosa protegge un'esportazione per casella di posta

Zimbra documenta l'esportazione e l'importazione di file TGZ tramite la sua interfaccia REST e zmmailboxla relativa utility. L'archivio è progettato per contenere il contenuto della casella di posta e la struttura delle cartelle, inclusi i messaggi di posta elettronica impacchettati come file EML e i relativi dati di calendario, contatti, attività o Briefcase. Il contenuto e i metadati che vengono conservati dopo l'importazione possono dipendere dalle versioni di origine e di destinazione e dagli elementi trasferiti.

Non confondere questa operazione con un backup completo dell'account o del server. Un'esportazione di contenuti TGZ non crea un account mancante né conserva in modo indipendente tutti gli attributi LDAP, le password, gli alias, le assegnazioni di classe di servizio, le impostazioni di routing, i filtri, le autorizzazioni o la configurazione del server. Registra separatamente le impostazioni dell'account necessarie utilizzando le procedure amministrative. L' zmbackuputilità descritta nella documentazione Zimbra precedente appartiene alla Network Edition, non al flusso di lavoro standard della CE.

Gli esempi di comando seguono le interfacce documentate di Zimbra, ma non rappresentano un test in tempo reale di ogni versione CE compilata in modo indipendente. Consultare la documentazione zmcontrol -v, zmmailboxla guida disponibile e le note di rilascio della propria build prima di pianificare un ripristino in produzione. Inoltre, non si deve presumere che un'esportazione REST in tempo reale catturi un istante perfettamente coerente se l'utente modifica gli elementi durante l'esecuzione. Pianificare un intervallo di tempo con bassa attività quando la coerenza è importante.

Esporta la singola casella di posta

1. Identificare l'account e il relativo host di posta.

Connettiti al server Zimbra con un account del sistema operativo con privilegi di amministratore. Passa all'utente del servizio Zimbra e verifica che l'account di destinazione esista. In una distribuzione multi-server, assicurati di connetterti al servizio di posta elettronica corretto.

sudo -iu zimbra
zmcontrol -v
zmprov ga user@example.com zimbraMailHost zimbraAccountStatus
zmmailbox -z -m user@example.com getAllFolders

Sostituisci user@example.comcon l'account effettivo. Il -zpassaggio utilizza le credenziali dell'amministratore locale di Zimbra; non la password dell'utente finale. Se non disponi dei diritti amministrativi necessari, utilizza un flusso di lavoro di accesso all'account approvato anziché incorporare le password in un comando shell.

Terminale che mostra una ricerca dell'account Zimbra con host della casella di posta e stato attivo
Prima di avviare l'esportazione, verifica l'indirizzo della casella di posta, il server di hosting e lo stato dell'account.

2. Creare una posizione di archivio privata

Come utente del sistema operativo con privilegi elevati, crea una posizione scrivibile dall'utente del servizio Zimbra. Esegui questa operazione al di fuori delle directory pubbliche e verifica prima lo spazio libero. Esegui il comando di installazione prima di passare a zimbra, oppure torna al tuo account con privilegi elevati.

sudo install -d -o zimbra -g zimbra -m 0700 /srv/zimbra-mailbox-backups
df -h /srv/zimbra-mailbox-backups
ls -ld /srv/zimbra-mailbox-backups

Gli archivi di posta elettronica possono contenere messaggi e allegati riservati. Limita l'accesso al file system, proteggi qualsiasi copia esterna al server e applica una politica di conservazione appropriata.

Terminale che mostra una directory di backup di una casella di posta privata e l'elenco dei permessi Unix.
Utilizza una directory di backup privata e verifica i permessi del file system.

3. Esporta la casella di posta come TGZ

Da una zimbrashell, utilizzare l'esportatore REST riportato di seguito. L' -t 0opzione disabilita il timeout della CLI per le operazioni di grandi dimensioni; non garantisce che proxy, I/O del disco o limiti del server non possano interrompere l'esportazione.

umask 077
zmmailbox -z -m user@example.com -t 0 getRestURL '//?fmt=tgz' > /srv/zimbra-mailbox-backups/user-20261010.tgz

Eseguite un'esportazione per ogni account e scegliete un nome file univoco e datato. Non riutilizzate un percorso di archivio precedente perché il reindirizzamento della shell lo troncherà. Se il comando segnala un errore, considerate il file risultante incompleto finché non supera i controlli descritti di seguito.

Terminale che mostra zmmailbox getRestURL durante l'esportazione di una casella di posta in un file TGZ
Il comando getRestURL scrive un archivio compresso della casella di posta nella directory selezionata.

4. Convalidare l'archivio e registrarne il checksum

Un file TGZ non vuoto non è una prova di un backup recuperabile. Analizza l'intero flusso tar, esamina le voci delle cartelle rappresentative e calcola un digest. Un controllo tar fallito significa che dovresti esaminare l'esportazione piuttosto che importare il file.

test -s /srv/zimbra-mailbox-backups/user-20261010.tgz
tar -tzf /srv/zimbra-mailbox-backups/user-20261010.tgz > /dev/null
tar -tzf /srv/zimbra-mailbox-backups/user-20261010.tgz | head -n 20
cd /srv/zimbra-mailbox-backups
sha256sum user-20261010.tgz > user-20261010.tgz.sha256

Salva il checksum accanto all'archivio e sposta entrambi in una posizione protetta al di fuori del server originale. Dopo la copia, esegui il comando sha256sum -c user-20261010.tgz.sha256nella directory contenente i due file. Un checksum positivo conferma l'integrità dei byte, non che tutte le funzionalità della casella di posta verranno ripristinate correttamente.

Terminale che mostra l'esistenza dell'archivio, l'integrità della compressione gzip e un elenco delle cartelle della casella di posta.
Prima di considerare l'esportazione come una copia di ripristino utilizzabile, ispeziona l'archivio.
Terminale che mostra il checksum SHA-256 per un file TGZ di una casella di posta
Registra un digest SHA-256 in modo che l'archivio trasferito possa essere controllato per eventuali modifiche.

Ripristina l'archivio senza sovrascrivere la posta attiva

5. Preparare e ispezionare la cassetta postale di destinazione

Se l'account di destinazione non esiste già, createlo tramite la normale procedura di provisioning Zimbra approvata; l'importazione TGZ non lo creerà. Verificate l'indirizzo, la quota, l'accesso ai servizi e le cartelle esistenti. Per il primo test, utilizzate un account isolato non di produzione, soprattutto per i trasferimenti tra versioni diverse.

sudo -iu zimbra
zmprov ga user@example.com zimbraMailHost zimbraAccountStatus
zmmailbox -z -m user@example.com getAllFolders

Copia l'archivio convalidato in una directory leggibile dall'utente del servizio Zimbra di destinazione, mantenendo le autorizzazioni limitate. Per un trasferimento remoto, verifica nuovamente il checksum a destinazione. Non dare per scontato che un account con lo stesso indirizzo sia vuoto.

Terminale che mostra gli attributi dell'account dal comando di provisioning di Zimbra
Prima di importare gli elementi della casella di posta, verificare che l'account di destinazione previsto esista.

6. Importare con una politica di gestione dei conflitti adeguata al paese di destinazione.

Per aggiungere gli elementi mancanti mantenendo quelli corrispondenti, utilizzare resolve=skip. Questo è il comportamento predefinito documentato per la gestione dei duplicati, ma non garantisce una fusione perfetta per ogni tipo di elemento o versione.

zmmailbox -z -m user@example.com -t 0 postRestURL '//?fmt=tgz&resolve=skip' /srv/zimbra-mailbox-backups/user-20261010.tgz

Evitate di copiare un esempio dannoso in produzione. Zimbra documenta resolve=resetla pulizia degli elementi di destinazione prima dell'importazione. Le replacepolitiche modifymodificano anche il modo in cui vengono gestiti gli elementi esistenti. Considerateli per un ripristino controllato solo dopo averli testati e aver ottenuto l'approvazione per l'esatto account e ambito di cartella.

Il terminale mostra zmmailbox postRestURL con l'opzione resolve=skip
Importa l'archivio con i criteri di ignoramento dei conflitti quando è necessario conservare il contenuto esistente della casella di posta.

Gestire gli errori di esportazione e verificare il ripristino

Se si verifica un timeout, conservare -t 0e analizzare il timeout del server o del proxy e i limiti di archiviazione; un timeout CLI pari a zero non risolve tutti i problemi di rete. Il wiki di supporto di Zimbra avverte anche di archivi danneggiati e errori di I/O in alcune esportazioni di caselle di posta di grandi dimensioni. Per un'esportazione di grandi dimensioni o inaffidabile, suddividere il lavoro per cartella o per data, quindi testare ciascun archivio e la relativa importazione su un account di riserva.

Ad esempio, la query di ricerca documentata under:Inboxseleziona il contenuto della Posta in arrivo e le relative sottocartelle. Le virgolette attorno all'URL REST sono essenziali perché la e commerciale deve raggiungere Zimbra e non la shell.

zmmailbox -z -m user@example.com -t 0 getRestURL '//?fmt=tgz&query=under:Inbox' > /srv/zimbra-mailbox-backups/inbox-20261010.tgz

Un archivio limitato a una cartella non sostituisce l'esportazione completa della casella di posta. Verificane il contenuto in modo indipendente e documenta quali cartelle o date sono state omesse. Se l'account è disabilitato o la richiesta restituisce un errore di autorizzazione, controlla lo stato dell'account e l'autenticazione amministrativa anziché ignorare i controlli del certificato TLS o esporre le credenziali.

7. Verificare gli elementi ripristinati, non solo l'uscita dal comando.

Elenca le cartelle di destinazione e confrontale con le cartelle di origine registrate e con l'inventario TGZ:

zmmailbox -z -m user@example.com getAllFolders
zmmailbox -z -m user@example.com getMailboxSize

Accedi quindi all'account di test di destinazione e apri un campione di messaggi ricevuti e inviati, allegati, contatti ed eventi del calendario. Verifica le date e i percorsi delle cartelle e controlla eventuali errori di importazione. Se necessario, ricrea o verifica separatamente alias, autorizzazioni di condivisione, regole e altre impostazioni a livello di account. Considera il ripristino riuscito solo quando i dati previsti sono accessibili e i controlli sono stati registrati.

Terminale che mostra i nomi delle cartelle di Zimbra restituiti da getAllFolders
Confronta il contenuto delle cartelle Posta in arrivo, Posta inviata, Calendario e altre, ripristinate, con il contenuto previsto dell'archivio.

Riferimenti principali: documentazione del comando zmmailbox di Zimbra , documentazione dell'API REST di Zimbra , documentazione di amministrazione di zmprov di Zimbra e articolo di Zimbra sulle esportazioni con ambito limitato e sulle precauzioni relative agli archivi di grandi dimensioni . Alcuni esempi presenti nella wiki di Zimbra sono datati o contrassegnati come "in fase di sviluppo"; verificate il loro comportamento sulla versione CE installata prima di utilizzarli in produzione.

Lascia un commento

Attivare l'esecuzione automatica di Nextcloud Cron con un timer Systemd

Controlla la modalità cron di Nextcloud, ripara il servizio systemd e il timer e verifica che i processi in background vengano eseguiti dopo l'avvio e ogni cinque minuti.

Rimuovi l'avviso di blocco dei file di Nextcloud con Redis

Abilita il blocco affidabile dei file in Nextcloud, scegli il backend Redis o Valkey più adatto e verifica che l'avviso scompaia senza rischiare modifiche simultanee ai file.

Cosa serve per ottenere una valutazione di sicurezza A+ da Nextcloud

Cosa serve per ottenere una valutazione di sicurezza A+ da Nextcloud

Risolvi i problemi più comuni riscontrati durante le scansioni di Nextcloud con gli aggiornamenti più recenti, HTTPS e HSTS, una configurazione precisa del proxy inverso e verifiche rispetto al server pubblico.

Abilita la crittografia lato server di Nextcloud con un impatto misurabile

Configura Nextcloud SSE per lo spazio di archiviazione che lo richiede, proteggi le chiavi di crittografia e misura l'impatto sul trasferimento dati e sulla CPU prima di crittografare i file esistenti.

Aggiungi la ricerca full-text di Elasticsearch a Nextcloud

Collega la ricerca file di Nextcloud a Elasticsearch, indicizza il contenuto dei documenti e scegli una configurazione adatta alle esigenze del tuo server e della tua sicurezza.

Imposta una politica di scadenza affidabile per i file eliminati da Nextcloud.

Imposta una politica di scadenza affidabile per i file eliminati da Nextcloud.

Configura Nextcloud per rimuovere i file eliminati dopo un periodo di conservazione definito, pianifica in modo affidabile le attività in background ed evita i comandi che svuotano il cestino di tutti gli utenti.

Risolvi l'avviso di Nextcloud relativo agli indici del database mancanti.

Risolvi l'avviso di Nextcloud relativo agli indici del database mancanti.

Esegui in modo sicuro la riparazione OCC di Nextcloud, visualizza in anteprima le modifiche al database e verifica il motivo per cui l'avviso potrebbe persistere.

Aumentare il limite di caricamento web di Nextcloud oltre i 2 GB

Aumentare il limite di caricamento web di Nextcloud oltre i 2 GB

Consenti il ​​caricamento di file di dimensioni maggiori nel browser Nextcloud allineando le impostazioni di PHP, Nginx o Apache, dello spazio di archiviazione temporaneo e del timeout, e verifica quale limite sta bloccando il file.

Rimuovi l'avviso di memoria PHP di Nextcloud sul server web

Imposta il limite di memoria PHP effettivamente utilizzato da Nextcloud, riavvia il servizio corretto e conferma l'impostazione di 512 MB nella Panoramica di amministrazione.

Collega un bucket compatibile con S3 allo storage esterno di Nextcloud.

Monta un bucket di object storage compatibile in Nextcloud utilizzando il suo backend S3, con l'endpoint, le credenziali, l'ambito di accesso e i passaggi di verifica corretti.