
OTOBO / Znuny Backup & Restore – Uitgebreide Handleiding
In deze handleiding duiken we diep in de back-upstrategieën voor OTOBO en bekijken we:
- Database Dump via
mysqldump - Docker Volumes back-uppen en herstellen
- OTOBO-specifieke scripts
backup.plenrestore.pl - Automatisering met cronjobs en foutafhandeling
- Langetermijnarchivering (bijv. AWS S3)
1. Database Dump met mysqldump
Voordeel: Snel, platformonafhankelijk, bevat vrijwel alle tickets, gebruikers en instellingen.
Voorbeeld Commando
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)
0 * * * * /usr/local/bin/otobo_db_backup.sh
otobo_db_backup.shmaakt een dump en verwijdert bestanden ouder dan 3 dagen.
Voorbeeld Script: otobo_db_backup.sh
#!/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 -delete2. Docker Volume Backup
Alle persistent opgeslagen bestanden (bijlagen, configuratie, logs) bevinden zich in Docker Volumes.
2.1 Volledige Backup van Volumes
#!/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
#!/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 -d3. OTOBO Scripts: backup.pl & restore.pl
OTOBO levert eigen CLI-scripts in de container:
# Hulp tonen
/opt/otobo/scripts/backup.pl -hOpties
| Optie | Standaard | Beschrijving |
|---|---|---|
-d, --backup-dir | vereist | Doelmap voor back-ups |
-c, --compress | gzip | Compressiemethode (gzip | bzip2) |
-r, --remove-old-backups DAYS | geen | Verwijdert oudere back-ups (in dagen) |
-t, --backup-type | fullbackup | fullbackup (alles) | nofullbackup | dbonly |
fullbackup: Database + Home-directory (exclusief cache).dbonly: Alleen database.
Voorbeeld: Volledige Backup in Docker Container
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 7Herstellen in Container
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/otobo4. Automatisering & Foutafhandeling
Wrapper Script met Foutcontrole
#!/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
0 */6 * * * /usr/local/bin/volume_backup.shOpruimen van Oude Backups
#!/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.gzen.sql.gzviaaws cliof 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: Officiële Docker-image levert een vooraf geïnstalleerde back-upservice met CLI-hooks (
OTOBO CLI Scripts
- OTOBO:
backup.plenrestore.plin de image ondersteunen automatische opruimopties (--remove-old-backups), compressiekeuze en het single-transaction-flag. - Znuny: Vergelijkbare scripts zijn aanwezig, vaak zonder
--remove-old-backupsof uitgebreide DB-dumpopties; aanpassingen zijn nodig.
- OTOBO:
DB Dump Optimalisaties
- OTOBO: Standaardflag
--single-transactionaanbevolen 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.
- OTOBO: Standaardflag
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
rcloneof 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.