For the complete documentation index, see llms.txt. This page is also available as Markdown.

Wie erstelle ich in Enginsight ein Backup einer oder mehrerer Organisationen?

In diesem Artikel zeigen wir dir, wie du in Enginsight ein Backup einer oder mehrerer Organisationen erstellen kannst. Nimm dazu folgende Schritte vor:

1

Auf dem Datenbankserver anmelden

Logge dich auf dem Enginsight Datenbankserver ein.

2

Verzeichnis für das Backup-Skript und Backup-Basisordner erstellen

  1. Erstelle mit folgendem Befehl ein Verzeichnis, in dem du dein Backup-Skript ablegen möchtest, z.B. /opt/enginsight/scripts:

sudo mkdir -p /opt/enginsight/<SkriptOrdnername>
cd /opt/enginsight/<SkriptOrdnername>

Vergiss dabei nicht, <SkriptOrdnername> entsprechend zu ersetzen.

  1. Erstelle mit folgendem Befehl einen eigenen Backup-Zielpfad mit Backup-Basisordner, z.B. /var/backups/enginsight/orga_backup:

sudo mkdir -p /var/backups/enginsight/<BackupBasisordner>

Vergiss dabei nicht, <BackupBasisordner> entsprechend zu ersetzen.

3

Skript-Datei erstellen und ablegen

  1. Erstelle mit folgendem Befehl eine Backup-Skript-Datei:

sudo nano /opt/enginsight/<SkriptOrdnername>/<SkriptDateiname>.sh

Vergiss dabei nicht, <SkriptOrdnername> und <SkriptDateiname> entsprechend zu ersetzen.

  1. Füge folgende Skript-Vorlage ein und ersetze die Platzhalter in <> entsprechend:

#!/usr/bin/env bash

set -euo pipefail

# 1) Organisation(en): eine oder mehrere Organisations-IDs eintragen (ohne Leerzeichen und ohne Trennzeichen) z.B. ("OrganisationsID1" "OrganisationsID2") 
ORG_IDS=( "<OrganisationsID1>" )

# 2) Backup-Basisordner
BACKUP_BASE="/var/backups/enginsight/<BackupBasisordner>"

# Optional: Zeitstempel pro Lauf 
TS="$(date +%F_%H%M%S)"
RUN_DIR="${BACKUP_BASE}/${TS}"

# Optional: Falls deine Mongo-CLI/Connection Parameter benötigt, können diese hier ergänzt werden.
# Standard (lokal auf Datenbankserver, keine Authentifizierung, keine TLS-Verschlüsselung):
MONGO_EXPORT_BASE=(mongoexport --db "enginsight")
MONGO_SHELL_BASE=(mongo "enginsight" --quiet)

# Beispiele (NUR falls benötigt) – Username/Passwort/TLS sinngemäß ergänzen:
# MONGO_EXPORT_BASE=(mongoexport --host "rs0/<IPAdresseDatenbankserver>:27017" --username "mongoDefaultUser" --password "$(</etc/enginsight/mongoDefaultUserPassword)" --authenticationDatabase "enginsight" --ssl --sslCAFile /etc/enginsight/ssl/mongodbCA.crt --sslPEMKeyFile /etc/enginsight/ssl/mongodb.pem --db "enginsight")
# MONGO_SHELL_BASE=(mongo "enginsight" --quiet)  # ggf. ebenfalls Host/Auth/TLS ergänzen

# === Checks ===
command -v mongoexport >/dev/null 2>&1 || { echo "mongoexport nicht gefunden"; exit 1; }
command -v mongo >/dev/null 2>&1 || { echo "mongo (Shell) nicht gefunden"; exit 1; }

mkdir -p "$RUN_DIR"

for ORG_ID in "${ORG_IDS[@]}"; do
  OUT_DIR="${RUN_DIR}/${ORG_ID}"
  mkdir -p "$OUT_DIR"
  cd "$OUT_DIR"

  # Alle Collections ermitteln und pro Collection nach 'organisation'-Filter exportieren
  echo "show collections" | "${MONGO_SHELL_BASE[@]}" \
    | xargs -I {} "${MONGO_EXPORT_BASE[@]}" --collection {} \
        --query '{"organisation":{"$eq":{"$oid":"'"$ORG_ID"'"}}}' \
        --out {}.json
  # Zusätzlich die Organisation selbst aus der 'organisations'-Collection sichern
  "${MONGO_EXPORT_BASE[@]}" --collection organisations \
    --query '{"_id":{"$eq":{"$oid":"'"$ORG_ID"'"}}}' \
    --out organisations.json

  cd - >/dev/null
done

Vergiss dabei nicht, die folgenden Platzhalter in <> entsprechend zu ersetzen:

  • <OrganisationsIDx>

  • <BackupBasisordner>

  • <IPAdresseDatenbankserver>

  1. Speichere die Datei (Strg + o) und bestätige den Speicherprozess. Schließe die Datei (Strg + x).

  2. Gib folgenden Befehl ein, um die Datei ausführbar zu machen:

sudo chmod +x /opt/enginsight/<SkriptOrdnername>/<SkriptDateiname>.sh

Vergiss dabei nicht, <SkriptOrdnername> und <SkriptDateiname> entsprechend zu ersetzen.

4

Backup-Skript überprüfen

  1. Überprüfe mit folgendem Befehl, ob du die richtigen Organisations-IDs und Pfade angegeben hast:

sudo head -n 60 /opt/enginsight/<SkriptOrdnername>/<SkriptDateiname>.sh

Vergiss dabei nicht, <SkriptOrdnername> und <SkriptDateiname> entsprechend zu ersetzen.

  1. Optional: Führe mit folgendem Befehl einen ShellCheck durch, falls du dieses Tool installiert hast:

shellcheck /opt/enginsight/<SkriptOrdnername>/<SkriptDateiname>.sh

Vergiss dabei nicht, <SkriptOrdnername> und <SkriptDateiname> entsprechend zu ersetzen.

5

Backup-Skript ausführen und Ergebnis prüfen

Führe nun das Backup-Skript mit folgendem Befehl aus:

sudo /opt/enginsight/<SkriptOrdnername>/<SkriptDateiname>.sh

Vergiss dabei nicht, <SkriptOrdnername> und <SkriptDateiname> entsprechend zu ersetzen.

Prüfe das Ergebnis bspw. wie folgt:

ls -la /var/backups/enginsight/<BackupBasisordner>
find /var/backups/enginsight/<BackupBasisordner> -maxdepth 3 -type f | head

Vergiss dabei nicht, <BackupBasisordner> entsprechend zu ersetzen.


Zuletzt aktualisiert

War das hilfreich?