Wie erstelle ich in Enginsight ein Backup einer oder mehrerer Organisationen?
2
3
Skript-Datei erstellen und ablegen
sudo nano /opt/enginsight/<SkriptOrdnername>/<SkriptDateiname>.sh#!/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
donesudo chmod +x /opt/enginsight/<SkriptOrdnername>/<SkriptDateiname>.sh4
VorherigeWie erstelle ich ein Backup meiner Enginsight Instanz?NächsteWie richte ich für die Enginsight Datenbank ein Passwort ein?
Zuletzt aktualisiert
War das hilfreich?