Skip to content

Backup Cover

OTOBO / Znuny Backup & Restore – Uitgebreide Handleiding

In deze handleiding duiken we diep in de back-upstrategieën voor OTOBO en bekijken we:

  1. Database Dump via mysqldump
  2. Docker Volumes back-uppen en herstellen
  3. OTOBO-specifieke scripts backup.pl en restore.pl
  4. Automatisering met cronjobs en foutafhandeling
  5. Langetermijnarchivering (bijv. AWS S3)

1. Database Dump met mysqldump

Voordeel: Snel, platformonafhankelijk, bevat vrijwel alle tickets, gebruikers en instellingen.

Voorbeeld Commando

bash
mysqldump \
  --host=${DB_HOST} \
  --user=${DB_USER} \
  --password=${DB_PASS} \
  --column-statistics=0 \
  --single-transaction \
  --databases otobo \
  > /backup/otobo_db_$(date +'%Y%m%d_%H%M').sql
  • --single-transaction: Minimaliseert tabelvergrendelingen, OTOBO blijft beschikbaar.
  • Retentie: Bijv. elk uur, laatste 72 dumps (3 dagen) via Cron.

Cron Job (elk uur, 3-dagen retentie)

cron
0 * * * * /usr/local/bin/otobo_db_backup.sh

otobo_db_backup.sh maakt een dump en verwijdert bestanden ouder dan 3 dagen.

Voorbeeld Script: otobo_db_backup.sh

bash
#!/bin/bash
BACKUP_DIR="/backup/db"
mkdir -p "$BACKUP_DIR"
DATE=$(date +'%Y%m%d_%H%M')
FILE="$BACKUP_DIR/otobo_db_${DATE}.sql.gz"

echo "Maak DB-dump naar $FILE"
mysqldump --host=localhost --user=otobo \
  --password=SecretPass --column-statistics=0 \
  --single-transaction otobo | gzip > "$FILE"

# Oude dumps verwijderen (ouder dan 3 dagen)
find "$BACKUP_DIR" -type f -name '*.sql.gz' -mtime +3 -delete

2. Docker Volume Backup

Alle persistent opgeslagen bestanden (bijlagen, configuratie, logs) bevinden zich in Docker Volumes.

2.1 Volledige Backup van Volumes

bash
#!/bin/bash
date=
DATE=$(date +'%d%m%Y_%H%M%S')
# Container stoppen voor een consistent bestandssysteem
docker compose -f /opt/otobo-docker/compose.yml down

tar -czf "/tmp/docker_volumes_$DATE.tar.gz" /var/lib/docker/volumes

docker compose -f /opt/otobo-docker/compose.yml up -d --build
  • Down/Up: Garandeert een schone kopie.
  • Archief: GZ-gecomprimeerd TAR in het host-temp-map.

2.2 Herstel: Volumes & Containers

bash
#!/bin/bash
# Gebruik: restore_volumes.sh backup_file.tar.gz
tar -xzf "$1" -C /
# Oude volumes verwijderen
docker compose -f /opt/otobo-docker/compose.yml down
rm -rf /var/lib/docker/volumes
# Herstellen en opnieuw starten
tar -xzf "$1" -C /
docker compose -f /opt/otobo-docker/compose.yml up -d

3. OTOBO Scripts: backup.pl & restore.pl

OTOBO levert eigen CLI-scripts in de container:

bash
# Hulp tonen
/opt/otobo/scripts/backup.pl -h

Opties

OptieStandaardBeschrijving
-d, --backup-dirvereistDoelmap voor back-ups
-c, --compressgzipCompressiemethode (gzip | bzip2)
-r, --remove-old-backups DAYSgeenVerwijdert oudere back-ups (in dagen)
-t, --backup-typefullbackupfullbackup (alles) | nofullbackup | dbonly

fullbackup: Database + Home-directory (exclusief cache).
dbonly: Alleen database.

Voorbeeld: Volledige Backup in Docker Container

bash
docker run --rm \
  --volume otobo_opt_otobo:/opt/otobo \
  --volume otobo_backup:/otobo_backup \
  rotheross/otobo:latest-10_0 scripts/backup.pl \
    --backup-dir /otobo_backup --compress gzip --remove-old-backups 7

Herstellen in Container

bash
docker run --rm \
  --volume otobo_opt_otobo:/opt/otobo \
  --volume otobo_backup:/otobo_backup \
  rotheross/otobo:latest-10_0 scripts/restore.pl \
    --backup-dir /otobo_backup/20231015_123045 --backup-dir /opt/otobo

4. Automatisering & Foutafhandeling

Wrapper Script met Foutcontrole

bash
#!/bin/bash
COMPOSE_FILE="/opt/otobo-docker/compose.yml"
# Start backup
docker compose -f "$COMPOSE_FILE" run --rm backup
if [ $? -ne 0 ]; then
  echo "Backup mislukt" >&2
  exit 1
fi
echo "Backup succesvol afgerond"

Oud: Cron voor Volume Backup

cron
0 */6 * * * /usr/local/bin/volume_backup.sh

Opruimen van Oude Backups

bash
#!/bin/bash
BACKUP_DIR="/pad/naar/backups"
echo "Verwijder backups ouder dan 30 dagen in $BACKUP_DIR"
find "$BACKUP_DIR" -mindepth 1 -mtime +30 -exec rm -rf {} \\
  \;
echo "Klaar."

5. Langetermijnarchivering & Cloud

  • AWS S3: Upload van de .tar.gz en .sql.gz via aws cli of Python-script.
  • rclone: Ondersteuning voor diverse targets (S3, Azure Blob, FTP).
  • Voordeel: Offsite-opslag, onbeperkte schaalbaarheid.

Verschillen tussen OTOBO en Znuny (Backup Context)

Op het gebied van Backup & Restore verschillen OTOBO en Znuny op de volgende punten:

  • Container Backups

    • OTOBO: Officiële Docker-image levert een vooraf geïnstalleerde back-upservice met CLI-hooks (docker compose run backup), inclusief voorbereide volume-mounts en omgevingsvariabelen.
    • Znuny: Community Docker-setup vereist handmatige toevoeging van een backup-container of aanpassing van eigen scripts.
  • OTOBO CLI Scripts

    • OTOBO: backup.pl en restore.pl in de image ondersteunen automatische opruimopties (--remove-old-backups), compressiekeuze en het single-transaction-flag.
    • Znuny: Vergelijkbare scripts zijn aanwezig, vaak zonder --remove-old-backups of uitgebreide DB-dumpopties; aanpassingen zijn nodig.
  • DB Dump Optimalisaties

    • OTOBO: Standaardflag --single-transaction aanbevolen en gedocumenteerd om locks te vermijden; CLI zorgt voor consistent gebruik.
    • Znuny: Community-documentatie verwijst meestal naar eenvoudige dumps zonder transactiebeveiliging, risico op locks bij hoge belasting.
  • Volume Snapshot Strategie

    • OTOBO: Voorbeeldscripts (bijv. volledige backup & herstel) zijn de officiële referentie en getest in multi-containeromgevingen.
    • Znuny: Snapshot-scripts variëren sterk, officiële best practices ontbreken; gebruikers moeten vaak hun eigen down/up-sequenties definiëren.
  • Automatisering & Cloud Plugins

    • OTOBO: Geïntegreerde S3-uploader voorbeelden (Python-script) en configuratiemodules voor Azure, Google Cloud Storage.
    • Znuny: Geen core-plugins voor cloud-opslag; oplossingen meestal extern via rclone of aparte upload-scripts.

6. Conclusie

Met deze gedetailleerde scripts en strategieën zijn uw OTOBO-gegevens veilig geback-upt, automatiseerbaar en snel herstelbaar. Of het nu gaat om DB-dumps, Docker-volumes of OTOBO-standaardtools – u heeft alle opties onder controle.