Automatisches Backup zu Odoo

odoo logo

Ein Backup der wichtigen Daten zu haben - soll sich ja schon herumgesprochen haben - ist immer eine gute Sache. Ja, richtig - es gibt Drittanbieter-Apps zu Odoo, welches ähnliches versprechen - aber einfacher und sicherer als mit einem simplen Cron-Job ist es einfach nicht zu machen.

Inhalt

Odoo Datenbank-Management-Schnittstelle
Erstellen einer Datenbanksicherung über die Kommandozeile
Automatische Odoo-Sicherung einrichten
Wiederherstellen einer Odoo-Datenbank
Fazit

In diesem Tutorial führen wir Sie durch den Prozess der Erstellung von automatischen täglichen Backups Ihrer Odoo-Datenbank. Odoo ist das beliebteste Open-Source-ERP-System, das in Python geschrieben ist und PostgreSQL als Datenbank-Backend verwendet.

Odoo speichert seine Daten in einer PostgreSQL-Datenbank. Ein regelmäßiges Backup der Datenbank schützt Sie vor einem potenziell katastrophalen Datenverlust und ist für jeden, der eine Odoo-Installation verwendet, absolut essenziell.


Odoo Datenbank-Management-Schnittstelle

Gehen wir zuerst einmal den Weg durch die GUI: Die Datenbankverwaltungsoberfläche von Odoo bietet Werkzeuge zum Sichern, Duplizieren, Löschen, Erstellen und Wiederherstellen einer Datenbank. Das Erstellen eines Backups über die Datenbank-Verwaltungsoberfläche ist einfach: Öffnen Sie einfach Ihren Browser und navigieren Sie zu http://your_server_ip:8069/web/database/manager.

Es wird der folgende Bildschirm angezeigt:
database manager

Klicken Sie auf den Link Backup:
database manager backup

Geben Sie das Master-Passwort Ihrer Odoo-Datenbank ein und erstellen Sie ein Backup, indem Sie auf die blaue Schaltfläche Backup klicken.

Je nach Größe der Datenbank kann es einige Zeit dauern, bis die Sicherung fertig ist und zum Download angeboten wird.

Wie allgemein bekannt, liegt der Fehler im Detail - häufig werden manuelle Tätigkeiten nicht ausgeführt, zeitlich falsch gelegt, gegebenenfalls die Backups versehentlich gelöscht - die Möglichkeiten sind unendlich.

Erstellen einer Datenbanksicherung über die Befehlszeile

Nun, da wir wissen, wie man ein Backup über die Odoo-Datenbankverwaltungsoberfläche erstellt, können wir dasselbe Tool verwenden, um ein Backup über die Befehlszeile zu erstellen. Verwenden Sie dazu wget oder curl . Beide Tools können Daten mit POST senden, die wir verwenden können, um die notwendigen Variablen an das Odoo-Datenbank-Tool zu übergeben.

Im folgenden Beispiel lautet das Master-Kennwort ADMIN_PASSWORD und wir erstellen eine Sicherungsdatei back_up_odoo.zip einer Datenbank namens DB_ODOO, die im Verzeichnis backup_dir gespeichert wird.

curl -X POST -F 'master_pwd=ADMIN_PASSWORD' -F 'name=DB_ODOO' -F 'backup_format=zip' -o /backup_dir/back_up_odoo.zip http://localhost:8069/web/database/backup

Wenn Sie wget gegenüber curl bevorzugen, können Sie auch den folgenden Befehl verwenden:

wget --post-data 'master_pwd=ADMIN_PASSWORD&name=DB_ODOO&backup_format=zip' -O /backup_dir/back_up_odoo.zip http://localhost:8069/web/database/backup

Wenn Sie ein Backup von einem entfernten Standort statt von localhost erstellen möchten, müssen Sie die URL zu Ihrer Odoo-Instanz eingeben. In diesem Fall wird empfohlen, HTTPS zu verwenden, da Sie nicht möchten, dass Ihr Passwort als reiner Text über das interne oder externe Netz gesendet wird.

Automatische Odoo-Sicherung einrichten

Um den Backup-Prozess zu automatisieren und unsere Odoo-Datenbank in regelmäßigen Abständen zu sichern, können Sie auch einen Cron-Job erstellen.

Nehmen wir an, Sie wollen Ihre Odoo-Datenbank jeden Tag um 00:30 Uhr sichern und die letzten 15 Backups aufbewahren.

Dazu erstellen Sie ein einfaches Bash-Skript, das Sie nach Belieben benennen können (es ist sinnvoll, dass der Name des Skriptes dessen Funktion andeutet. Dabei wäre zu beachten, dass man keine Sonderzeichen verwendet, und es sollte nicht schon einen gängigen Systembefehl mit diesem Namen geben):

sudo nano backup_odoo.sh

Fügen Sie den folgenden Inhalt in diese neue Datei ein:

#!/bin/bash

# vars
BACKUP_DIR=~/odoo_backups
ODOO_DATABASE=DB_ODOO
ADMIN_PASSWORD=superadmin_passwd

# create a backup directory
mkdir -p ${BACKUP_DIR}

# create a backup
curl -X POST \
-F "master_pwd=${ADMIN_PASSWORD}" \
-F "name=${ODOO_DATABASE}" \
-F "backup_format=zip" \
-o ${BACKUP_DIR}/${ODOO_DATABASE}.$(date +%F).zip \
http://localhost:8069/web/database/backup

# delete old backups
find ${BACKUP_DIR} -type f -mtime +15 -name "${ODOO_DATABASE}.*.zip" -delete

Machen Sie das Skript mit chmod ausführbar:

sudo chmod +x ~/backup_odoo.sh

Vergessen Sie nicht, die Variablen BACKUP_DIR, ODOO_DATABASE und ADMIN_PASSWORD nach Ihren Bedürfnissen zu ändern.

Der letzte Schritt besteht darin, einen neuen Cron-Job zu erstellen, der jeden Tag um 00:30 Uhr läuft:

crontab -e

30 0 * * * /home/<username>/backup_odoo.sh

Vergessen Sie nicht, den richtigen Namen und Pfad für das Sicherungsskript festzulegen.

Sie können das Skript ändern und eine robustere Sicherungslösung implementieren, z. B. einen entfernten Sicherungsspeicher verwenden, wöchentliche und monatliche Sicherungen durchführen.

Wiederherstellen einer Odoo-Datenbank

Um eine Datenbanksicherung über die Datenbankverwaltungsoberfläche wiederherzustellen, öffnen Sie Ihren Browser und navigieren Sie zu http://your_server_ip:8069/web/database/manager.
database manager

Klicken Sie auf die Schaltfläche Datenbank wiederherstellen und ein neues Popup wird angezeigt.
database manager restore

Geben Sie Ihr Odoo-Datenbank-Master-Passwort ein, wählen Sie die Sicherungsdatei aus, geben Sie den neuen Datenbanknamen ein und stellen Sie die Datenbank wieder her, indem Sie auf die blaue Schaltfläche "Weiter" klicken.
!!! Bevor Sie die Datenbank wiederherstellen, müssen Sie entweder die bestehende Datenbank gleichen Namens löschen oder einen neuen Datenbanknamen erstellen.

Abhängig von der Größe der Datenbank und Ihrer Internetgeschwindigkeit kann der Wiederherstellungsprozess einige Zeit in Anspruch nehmen.

Sie können die Datenbank auch über die Befehlszeile wiederherstellen:

curl -F 'master_pwd=superadmin_passwd' -F backup_file=@/opt/odoo/odoo_backups/db1.2021-02-14.zip -F 'copy=true' -F 'name=db3' http://localhost:8069/web/database/restore

Natürlich müssen Sie den obigen Befehl noch mit Ihrem Odoo Master-Passwort, dem Pfad zum Datenbank-Backup und dem Datenbanknamen anpassen.

Wenn die Wiederherstellung erfolgreich ist, sollten Sie automatisch zur Ziel-URL umgeleitet werden: http://localhost:8069/web/database/manager.

Bei einem Restore eines Backups achten Sie bitte penibel darauf, wirklich ALLE zu der rückgesicherten Datenbank gehörenden Custom-Addons in das definierte Verzeichnis zu kopieren, die mögliche Fehlersuche reduziert sich damit dramatisch!

Fazit

Dieses Tutorial führte Sie durch die Erstellung automatischer täglicher Backups Ihrer Odoo-Datenbanken mit Hilfe eines einfachen Cronjobs.

Daten letztmalig aktualisiert am 22.04.2021

Interessiert an mehr Information? Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!

Partner | Referenzen
  • 1_LOGO_FARSITE.png
  • 1_LOGO_Avalara.jpg
  • idRoboTica.png
  • dekabank.gif
  • 1_LOGO_NEXIONA.png
  • commerzbank.gif
  • vodafone.gif
  • CLAAS.png
  • tuev-nord.jpg
  • netcologne.gif
  • BAYER.png
  • sbb.gif
  • VOESTALPINE.png
  • 1_LOGO_SSH.png
  • gieseckedevrient.gif
  • ASKLEPIOS.png
  • AIRBUS.png
  • NXP.png
  • DEUTSCHE_BANK.png
  • deutschepost.gif