
1. Wo soll ich anfangen?
Wo beginnt die Sicherung? Planung. Wenn Sie ein System sichern, müssen Sie einen Sicherungsplan erstellen: Was genau, wie oft, wie lange muss gespeichert werden, ist genügend freier Speicherplatz vorhanden? Aus den Antworten auf diese Fragen folgt die Antwort auf die Hauptfrage: Wie wird ein Backup erstellt?
Wenn viel freier Speicherplatz vorhanden ist, können Sie die gesamte virtuelle Maschine speichern. Erstellen Sie Backups mit demselben Veeam nach einem Zeitplan und denken Sie nicht an die Schwierigkeiten. Aber für mich ist es eine Verschwendung, ich bin es gewohnt, alles so präzise und wirtschaftlich wie möglich zu machen. Natürlich habe ich Veeam bereitgestellt, aber ich erstelle nur Sicherungskopien der Systeme, deren Bereitstellung über Sicherungen für eine sehr lange Zeit entweder unmöglich oder problematisch ist.
Über die Skripte der Virtual Environment Management Tools werde ich einfach sinnvoll schweigen.
Zimbra hat ein zmmailbox-Tool. Und bei näherer Betrachtung seiner Funktionalität wurde mir klar, dass es mehr als genug für mich sein würde. Er kann Postfächer auch auf einem Live-System sichern und wiederherstellen. Und ich mochte die Möglichkeit, kritische Postfächer getrennt von der Sicherung des gesamten Systems zu sichern. Daher wird der von Sicherungen belegte Speicherplatz durch die Größe der archivierten Postfächer multipliziert mit der Anzahl der Tage der "Sicherungstiefe" und nicht durch das Volumen des gesamten Systems multipliziert mit der gleichen Anzahl von Tagen begrenzt. Darüber hinaus ist es im Fall von Zimbra äußerst schwierig, eine Sicherung des gesamten Systems wiederherzustellen. Es ist viel einfacher, eine virtuelle Maschine mit Veeam oder Tools zur Verwaltung virtueller Umgebungen (Hyper-V, ESXI, geben Sie ein, was Sie benötigen) direkt nach dem Einrichten des Systems zu kopieren und in das Regal zu stellen, damit Sie in einem kritischen Moment schnell eine nahezu schwerelose VM bereitstellen und hochladen können darin Backups von Boxen. Meiner Meinung nach ist dies in jeder Hinsicht das kostengünstigste Szenario.
2. Die Quelldaten:
Server-Betriebssystem : CentOS 7
Über das BetriebssystemTatsächlich liegt der Unterschied zwischen CentOS7 und jedem anderen System ausschließlich in den Befehlen an den Server zum Installieren von Paketen und möglicherweise im Speicherort einiger Dateien. Die Arbeiten werden hauptsächlich mit Zimbra-Cmdlets durchgeführt, so dass die Konfigurationsunterschiede minimal sind.
Zimbra Domain : zimbramail.home.local
Benutzername und Passwort für den Zugriff auf den freigegebenen Ordner : ZimbraBackUp / 123123
Der Pfad zum freigegebenen Ordner : \\ BackUpServer1 \ ZM \
Der Pfad zum Montieren der Bälle auf dem Zimbra-Host : / mnt / ZM /
3. Setup
Also fangen wir an!
Wir werden Backups auf einen Server unter Windows in einem freigegebenen Ordner schreiben. Wenn Sie möchten, können Sie Backups überall zusammenführen, aber ich habe alles so konfiguriert, dass die meisten Backups in BackUpServer1.home.local geschrieben werden. Also das:
1) Wir erstellen in der Domäne des Benutzers, um auf den freigegebenen Ordner auf diesem Server zuzugreifen, damit dieser auf dem Server Zimbramail.home.local bereitgestellt werden kann. Benutzername ZimbraBackUp, Passwort, bedingt, 123123.
2) Erstellen Sie auf dem BackUpServer1-Server das Verzeichnis \ ZM \ im Repository, geben Sie es frei und geben Sie dem ZimbraBackUp-Benutzer Änderungsrechte. Der Pfad zum Ball lautet: \\ BackUpServer1 \ ZM \
3) Montieren Sie den Ball auf dem Server Zimbramail.home.local. Damit der Ordner automatisch bereitgestellt wird, müssen Sie die Datei / etc / fstab reparieren, indem Sie die folgende Zeile hinzufügen:
//BackUpServer/ZM /mnt/ZM cifs user,uid=500,rw,suid,username=ZimbraBackUp,password=123123 0 0
Aber zuerst müssen Sie überprüfen, ob die Halterung funktioniert:
$ mount -t cifs //BackUpServer/ZM /mnt/ZM -o user=ZimbraBackUp,password=123123
Oft erscheint ein Fehler wie dieser:
mount: wrong fs type, bad option, bad superblock on //BackUpServer1/ZM/, missing codepage or helper program, or other error (for several filesystems (eg nfs, cifs) you might need a /sbin/mount.<type> helper program) In some cases useful info is found in syslog - try dmesg | tail or so.
Sie können das Problem beheben, indem Sie cifs-utils installieren:
$ yum install cifs-utils
Nach dem Einstellen empfehle ich, den Server neu zu starten.
4) Erstellen Sie 3 Skriptdateien: FullBackUp.sh HandBackUp.sh Restore.sh
Die erste Datei wird verwendet, um automatisch geplante Sicherungen zu erstellen, die zweite für die Möglichkeit, einzelne Postfächer zu sichern oder einfach manuell "Was wäre wenn" zu starten. Und das dritte Skript ist die gleichzeitige Wiederherstellung einer oder aller Boxen. Ich habe so viel wie möglich versucht, die Arbeit von Skripten zu kommentieren und die Protokollierung vorzuschreiben.
Der Inhalt der Datei FullBackUp.sh: Inhalt der HandBackUp.sh-Datei: Der Inhalt der Datei Restore.sh: Es gibt eine Subtilität. Wenn Sie Skriptdateien für Bash unter Windows erstellen und bearbeiten, wird beim Versuch, das Skript auszuführen, ein Fehler angezeigt:
/ bin / sh ^ M: fehlerhafter Interpreter: Keine solche Datei oder kein solches Verzeichnis , zu dem unter Windows ausgeführte Editoren hinzugefügt werden Das Ende der Zeile ist das Wagenrücklaufzeichen "CR \ LF", das von Editoren unter Linux nicht angezeigt wird. Aber dieses Symbol ist da und nicht verschwunden. Um den Fehler zu beseitigen und die zusätzlichen Zeichen zu entfernen, gehen wir wie folgt vor:
$ cat your-script.sh | tr -d '\r' > corrected-your-script.sh
Nun, oder Sie können das Dienstprogramm dos2unix verwenden, müssen es aber noch installieren:
$ yum install dos2unix $ dos2unix your-script.sh
5) Wir machen die Skripte ausführbar:
$ chmod 0740 /opt/zimbra/BkUpRestScripts/FullBackUp.sh $ chmod 0740 /opt/zimbra/BkUpRestScripts/HandBackUp.sh $ chmod 0740 /opt/zimbra/BkUpRestScripts/Restore.sh
6) Ich empfehle, dass Sie Skripte mit Ihren Händen ausführen und prüfen, ob sie funktionieren und wie sie funktionieren.
7) Erstellen Sie in CRON eine Aufgabe für die tägliche Sicherung von Postfächern:
10 0 * * * root /opt/zimbra/ BkUpRestScripts/FullBackUp.sh
8) Viel Spaß
4. Skripterstellung
Falls die Kommentare in den Skripten selbst nicht geholfen haben.
1) Skript FullBaclUp.sh:Zu Beginn werden die Variablen bestimmt, welche für was verantwortlich sind - alles wird kommentiert.
Im Folgenden wird überprüft, ob kein Verzeichnis für die Sicherung vorhanden ist. Wenn es nicht vorhanden ist, wird es erstellt. Aus der Protokolldatei und dem Bildschirm (falls von Hand gestartet) wird der Erfolg oder Misserfolg beim Erstellen eines Verzeichnisses abgeleitet.
Suchen Sie nach fehlendem Katalog mit dem heutigen Datum. Wenn es nicht vorhanden ist, wird es erstellt, die Ausgabe auf dem Bildschirm und das Protokoll des Ergebnisses der Erstellung des Verzeichnisses werden ebenfalls generiert.
Schreiben aller vorhandenen Zimbra-Postfächer in eine Datei. Es wird für die sequentielle Reservierung jeder Box benötigt. Zeigt das Ergebnis des Befehls an.
Erstellen eines Backups für jedes Postfach aus der empfangenen Liste. Mit der Ausgabe der Ausführung auf den Bildschirm und in die Protokolldatei.
Löschen einer Datei mit einer Liste von Feldern. Da alle 3 Skripte mit dieser Datei arbeiten, ist es ratsam, sie nach jedem Lauf zu bereinigen, damit es keine Überraschungen gibt. Sie können es vor dem Start des Skripts bereinigen, aber es ist mir irgendwie vertrauter, nach Abschluss der Arbeit keine unnötigen Daten zu speichern, sondern dasselbe vor und nach der Arbeit des Skripts zu tun, ist ein leichtes Maß an Schizophrenie.
Als nächstes folgt ein Block zum Erstellen eines komprimierten Archivs.
Überprüfen Sie das Fehlen des Archivspeicherverzeichnisses, erstellen Sie es in Abwesenheit und zeigen Sie das Ergebnis der Erstellung auf dem Bildschirm und im Protokoll an
Archivierung
Check "ist heute nicht der erste Tag?" Ich bevorzuge es, Backups für den ersten Tag aller Monate für eine lange Zeit zu speichern, das reicht mir, um zu arbeiten. Es kann wochenlang gelagert werden, ist aber oft überflüssig. Die Bedingung für das Speichern von Sicherungen für den gesamten Betriebszeitraum des Mailservers ist jedoch oben festgelegt, sodass sie für immer verfügbar sind. Wenn die Nummer die erste ist, wird das resultierende Archiv in ein separates "Mounthly" -Verzeichnis kopiert. Und um es dort zu kopieren, müssen Sie überprüfen, ob es ein solches Verzeichnis gibt, und wenn nicht, erstellen Sie es, das dem Bildschirm und der Protokolldatei gemeldet werden soll.
Als nächstes wird der Speicher bereinigt - alle Backups, die älter als 2 Wochen sind, sowie Archive, die älter als 61 Tage sind, werden gelöscht. Das Ergebnis des Löschvorgangs wird auf dem Bildschirm und in der Protokolldatei angezeigt.
Danach schreibt das Skript die Abschlusszeit in die Protokolldatei und auf den Bildschirm und beendet seine Arbeit.
2) Skript HandBackUp.sh:Zu Beginn werden auch Variablen definiert und kommentiert, warum sie benötigt werden.
Als Nächstes wird der Benutzer aufgefordert, den Namen des Postfachs einzugeben, das gesichert werden soll, ohne die Zimbra-Domäne anzugeben. (es steht in der Aufforderung zur Teilnahme) oder wählen Sie eine Sicherung aller Postfächer aus, indem Sie ALLE oder alle schreiben.
Wenn Sie alle Postfächer sichern möchten, funktioniert das Skript fast genauso wie das erste oben aufgeführte, außer dass Sie nach dem Erstellen von Sicherungen für jedes Postfach gefragt werden: Muss ich sie archivieren?
Wenn ein bestimmtes Postfach geschrieben wurde, wird seine Existenz in Zimbra überprüft. Wenn ein Feld mit dem angegebenen Namen vorhanden ist, wird der Sicherungsvorgang dieses Felds gestartet, wobei die entsprechenden Informationen auf dem Bildschirm und in der Protokolldatei angezeigt werden. Wenn das angegebene Feld nicht vorhanden ist, wird der Benutzer darüber informiert und das Skript schließt seine Arbeit ab.
Nach Abschluss der Sicherung der Box werden Sie aufgefordert, die Kopie zu archivieren. Wenn der Benutzer zustimmt, wird geprüft, ob kein Verzeichnis zum Speichern des Archivs und weiter unten in der Liste vorhanden ist, wie im ersten Skript.
Nach Abschluss der Archivierung wird die Datei mit der Liste der Postfächer gelöscht. Nur für den Fall.
Am Ende werden Informationen zur Abschlusszeit des Skripts auf dem Bildschirm und in der Protokolldatei angezeigt.
3) Script Restore.sh:Wie in den vorherigen Dateien zuerst - die Definition von Variablen mit Kommentaren.
Der Benutzer wird aufgefordert, das Datum der wiederherzustellenden Sicherung auszuwählen. Wenn das angegebene Datum nicht in den Sicherungen enthalten ist, wird das Skript beendet, indem dies gemeldet wird.
Wenn Sicherungen für das angegebene Datum vorhanden sind, fordern Sie den Benutzer auf, den Namen des Felds einzugeben, das wiederhergestellt werden muss. Um alle Boxen wiederherzustellen, müssen Sie ALLE oder alle schreiben.
Wenn die Option ALL ausgewählt ist, erstellt das Skript eine Liste der Dateien im Sicherungsordner in der Datei und benachrichtigt Sie über das Ergebnis der Erstellung.
Als nächstes folgt eine schrittweise Wiederherstellung jeder Box. Überprüfen Sie zunächst, ob im System ein Kästchen vorhanden ist. Andernfalls wird es erstellt und dann wiederhergestellt. Informationen zu jedem Vorgang werden in der Protokolldatei und auf dem Bildschirm angezeigt.
Wenn ein bestimmtes Feld ausgewählt ist, ist es fast dasselbe. Überprüfen Sie, ob eine Datei mit dem angeforderten Namen vorhanden ist. Ausgabe auf den Bildschirm und die Ergebnisprotokolldatei.
Überprüfen, ob im System ein Kästchen vorhanden ist. Ausgabe auf den Bildschirm und die Ergebnisprotokolldatei.
Die Aufforderung an den Benutzer, der Erstellung der Box zuzustimmen, wenn diese nicht im System vorhanden ist. Ausgabe auf den Bildschirm und die Ergebnisprotokolldatei.
Erstellen Sie eine Box, wenn dies vereinbart wurde. Ausgabe auf den Bildschirm und die Ergebnisprotokolldatei.
Postfachwiederherstellung. Ausgabe auf den Bildschirm und die Ergebnisprotokolldatei.
Löschen einer Datei mit einer Liste von Wiederherstellungsfeldern.
Am Ende werden Informationen zur Abschlusszeit des Skripts auf dem Bildschirm und in der Protokolldatei angezeigt.
5. In Bezug auf die Wiederherstellung
Wenn Sie diese Skripte geringfügig ändern, eignen sie sich gut zum Verschieben von E-Mails von Server zu Server, indem Sie einfach Postfächer mit allen Inhalten an einem neuen Ort erstellen. Sie können das System auch von Grund auf wiederherstellen, wenn es aus irgendeinem Grund einfacher ist, den Zimbra-Server erneut zu starten, als zu versuchen, den alten wiederzubeleben. Wie oben beschrieben, können Sie das Image der konfigurierten virtuellen Maschine speichern, indem Sie es bei Bedarf erweitern und mit allen Daten füllen. Der gleiche Algorithmus für den Wechsel von einem Zimbra-Server zu einem anderen.
Und es werden keine kostenpflichtigen Dienstprogramme wie Zextras benötigt.6. Fazit
Im Allgemeinen sind die von mir geschriebenen Skripte nicht kompliziert. Ja, es gibt viele Bedingungen in ihnen, weil ich versucht habe, so viele Probleme und Fehler wie möglich in ihrer Arbeit vorherzusagen, aber ich habe auch versucht, das Skript so klar wie möglich zu kommentieren. Höchstwahrscheinlich funktionieren sie nicht für alle. Vielleicht hat jemand diese Sicherungsmethode überhaupt nicht. Aber ich hoffe, viele werden es nützlich finden.7. PS:
« «Zimbra» ». , , LDAP- AD,
.
AD Zimbra OSE
.
, , - « », .