Hallo,
ich habe leider nichts passendes einfaches gefunden.
oh möchte gerne eine regelmäßiges Backup vornehmen, idealerweise pro Mailbox um auch einzelne Elemente wieder hwrstellen zu können.
Hat jemand da schon Ideen? An liebsten wäre mir ene Kommandozeilen-Tool, das die Mailboxen sichert. Gerne auch ähnlich demsichern on eine pst-Datei in Outlook.
mailbox backup
- Edited
Also ich hab auch noch nix konkretes außer halt ne Mailarchivierung *g*.
Aber das hier hab ich mal zusammengezimmert um zumindest mal automatisch btrfs-snapshots mit Hilfe von snapper zu erhalten.
#!/usr/bin/env bash
zypper --non-interactive install --auto-agree-with-licenses yast2-nfs-client yast2-snapper snapper-zypp-plugin grub2-snapper-plugin snapper bash-completion jq
mkdir -p ~/.local/bash-completion
wget https://raw.githubusercontent.com/openSUSE/snapper/master/scripts/bash-completion.bash -O ~/.local/bash-completion/snapper
cat << EOF >> ~/.bashrc
for file in ~/.local/bash-completion/*; do test -f "$file" && . "$file"; done
alias snapconfs='snapper list-configs --columns config |tail -n +3'
EOF
source ~/.bashrc
#OVA has a snapshot, so we handle that with that.
cp /etc/snapper/config-templates/default /etc/snapper/configs/root
sed -i '$s/""/"root"/g' /etc/sysconfig/snapper
#Reload because of manual file-change
systemctl restart snapperd.service
#Add all btrfs-volumes with 'grom*' in name for more control of snapshots
#Grommunio-Chat always changes the owner of .snapshot - not using anyway
for path in $(mount -t btrfs |awk '/grom/ {print $3}' |grep -v chat);
do
conf=${path##*/}
usr=$(stat -c "%U" $path)
grp=$(stat -c "%G" $path)
snapper -c $conf create-config $path
#Maybe this helps in some way down the road...
snapper -c $conf set-config ALLOW_USERS="$usr" ALLOW_GROUPS="$grp" SYNC_ACL="yes"
done
Apropos Backups:
Habe jetzt mit Snapper zusammen mal sowas hier gebastelt grombak.
Da ich auf ein NFS-Share sichere welches via ZFS Snapshots macht habe ich jegliches Datumsgefuddel einfach weg gelassen.
Hauptsache die info.xml
aus dem snapshot-Ordner ist dabei mit INFO zum verwendeten Snapshot.
gromi:/mnt/achtgm-hdd/data/nfs/backup/gromi/fs/gromox # cat info.xml
<?xml version="1.0"?>
<snapshot>
<type>single</type>
<num>879</num>
<date>2022-06-09 23:00:09</date>
<description>timeline</description>
<cleanup>timeline</cleanup>
</snapshot>
- Edited
Gerade eben mal mein BACKUP auf einer frischen Test-OVA eingespielt.
Ging super einfach.
Zu beachten ist halt das die USERID's sich unterscheiden können und somit die Zugriffsrechte nicht mehr stimmen. Ist mir auch nur aufgefallen da gromox-timer.service gemeckert hat.
Meine schritte waren:
- OVA im vcenter ausrollen
- Boot, Netzwerkkonfiguration und so..
- Ich mache dann immer vor der Grommunio-Installation erstmal Updates (Aber glaube ich nicht nötig...)
- Grommunio-Setup laufen lassen CORE (ich hab nur das)
- Reboot
- Dienste runter fahren
systemctl --all --output json list-units| jq '.[]|select(.unit|test("(^grom.*|nginx|.*fpm).service")).unit' |xargs systemctl stop
rm -Rf /var/lib/gromox/*
,mkdir -p ~/bak
,mv /etc/grom* /etc/postfix ~/bak/
- NFS Laufwerk einbinden und
/var/lib/gromox/*
aus Backup wiederherstellen. - etc.tar.gz entpacken (das was wir eben weg geschoben haben aus dem backup)
- Ich habe nun einfach die folgenden Dateien wieder aus
~/bak/
kopiert weil ich zu Faul war das MySQL-Kennwort zu ändern.
Also die hier:
/etc/gromox/mysql_adaptor.cfg
/etc/gromox/adaptor.cfg
/etc/grommunio-admin-api/conf.d/database.yaml
- MYSQL-DB zurückspielen
eval `sed 's/ //g' /etc/gromox/mysql_adaptor.cfg` mysql --user=$mysql_username --password=$mysql_password $mysql_dbname < grommunio.sql
- Warten bis der Kopiervorgang fertig ist....
- Reboot
Ahh und weil es eine Testmaschine mit anderem Hostnamen ist, habe ich noch die Hostnamen in
/etc/gromox/http.cfg
, /etc/gromox/autodiscover.ini
, /etc/grommunio-admin-common/config.json
anpassen müssen.
- Edited
Eigentlich muss man alles im /etc/gromox/
zurück kopieren, in einigen Dateien sind die x500 IDs des Systems enthalten.
Die Zertifikate darf man auch nicht vergessen.
- Edited
Ich habe gerade das hier für den kram in /etc
.
find /etc -maxdepth 1 -iname 'grom*' -or -name postfix -exec tar -cvJf ${BACKUPDIR}/etc/etc.tar.xz {} +
Lieber ein paar mehr Sachen als das nötigste dacht ich mir da nur :-).
Cooler Beitrag! Sehe ich das richtig, dass ich die Innereien meiner Grommunio-Installation sichern kann, nur in dem ich /var/lib/gromox, sowie die gromox-/postfix-configs aus /etc sichere? Z.B. wenn ich den Kram auf einer neuen Installation wiederherstellen möchte? Das wäre ja schon sehr einfach und nahezu schlank…
- Edited
richtig. Inhalt des Backups variiert je nach eingesetzten Modulen. Vollständige Liste: https://docs.grommunio.com/admin/operations.html#backup-disaster-recovery
Gibt es da inzwischen etwas userfreundliches über die CUI oder im Modul ARCHIV. Ich mache bislang hauptsächlich VM-Exports und spiele diese wieder zurück. Leider aknn ich diese nicht zeitlich steuern, oder noch nicht. Ein internes Backup- oder Archiv-Tool zB. als GUI über das ARCHIV-Modul wäre schon elegant.
grommunio-archive ist mailpiler
Dokumentation hier: https://www.mailpiler.org
Zur Archivierung / Sicherung von Gromox
Da bewegt sich was https://github.com/grommunio/gromox/blob/master/tools/gromox-snapshot