Vraag een bedrijf of ze back-ups hebben en het antwoord is bijna altijd “ja”. Vraag wanneer ze voor het laatst een herstel hebben getest, en het wordt stil. Hardwarestoringen, ransomware, gehackte plugins, een verkeerde rm -rf of een mislukte update kunnen elke server overkomen. Back-ups zijn alleen waardevol als je ze kunt herstellen.
Deze gids toont een eenvoudige, betrouwbare back-upconfiguratie voor Linux-servers (webwinkels, WordPress, Magento, n8n en andere toepassingen) met behulp van de 3-2-1 regel en restic.
De 3-2-1 back-upregel
- 3 kopieën van uw gegevens (de originele plus twee back-ups)
- Over 2 verschillende soorten opslag
- Met 1 kopie buiten de site
Veel mensen voegen een moderne extensie toe: 3-2-1-1-0:
- 1 kopie die offline of onveranderlijk is (niet kan worden gewijzigd of verwijderd door een aanvaller)
- 0 fouten in hersteltests
Wat te back-uppen
Voor een typische webserver:
- Databases (MySQL/MariaDB, PostgreSQL), als consistente dumps
- Toepassingsbestanden: uploads, media,
wp-content,pub/media, configuratiebestanden - Configuratie: webserverconfiguratie,
.envbestanden, cronjobs, SSL-configuratie - Geheimen: versleuteling sleutels en inloggegevens, apart opgeslagen in een wachtwoordbeheerder
Maak geen back-up van wat je kunt opnieuw opbouwen: caches, generated/ code, node_modules, vendor/ (als je vanuit Git en Composer implementeert).
Waarom restic?
Restic is een gratis, open-source back-up tool die is:
- Standaard versleuteld
- Deduplicated: alleen gewijzigde gegevens worden opgeslagen, zodat dagelijkse back-ups klein zijn
- In staat om te back-uppen naar vele doelen: lokale schijf, SFTP, S3-compatibele objectopslag, Backblaze B2 en meer
- Eenvoudig te gebruiken vanaf de opdrachtregel
Borg (met borgmatic) is een goede alternatieve met vergelijkbare functies.
Stap 1: Installeer restic
Op Debian/Ubuntu:
sudo apt install restic
Stap 2: Maak een repository aan
Voorbeeld met S3-compatibele objectopslag:
export AWS_ACCESS_KEY_ID=your-key
export AWS_SECRET_ACCESS_KEY=your-secret
export RESTIC_REPOSITORY=s3:https://s3.example-provider.com/my-backups
export RESTIC_PASSWORD_FILE=/root/.restic-password
restic init
Bewaar het restic-wachtwoord ook in een wachtwoordmanager. Zonder dit kunnen uw back-ups niet worden gedecodeerd.
Stap 3: Dump de databases
MySQL / MariaDB (consistente dump voor InnoDB zonder de winkel te vergrendelen):
mysqldump --single-transaction --quick --routines --triggers shop_db | gzip > /var/backups/db/shop_db.sql.gz
PostgreSQL:
pg_dump -U app app_db | gzip > /var/backups/db/app_db.sql.gz
Stap 4: Voer de back-up uit
restic backup /var/backups/db /var/www/shop/pub/media /etc/nginx /home/deploy/.env \
--exclude /var/www/shop/var/cache
Stap 5: Stel retentie in
Houd een zinvolle geschiedenis bij en verwijder oude snapshots:
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
Dit houdt één backup per dag voor een week, per week voor een maand en per maand voor een half jaar.
Stap 6: Controleer de integriteit van de repository
restic check
Voer het regelmatig uit, bijvoorbeeld wekelijks.
Stap 7: Automatiseer met een script en cron
Maak /usr/local/bin/backup.sh:
#!/bin/bash
set -euo pipefail
source /root/.restic-env
mysqldump --single-transaction --quick shop_db | gzip > /var/backups/db/shop_db.sql.gz
restic backup /var/backups/db /var/www/shop/pub/media /etc/nginx
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
Plan het ’s nachts in:
30 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
Voeg monitoring toe. Een back-up die drie maanden lang stilzwijgend faalt, is een veelvoorkomende ramp. Gebruik een “dode mans schakelaar” monitoringdienst of een kleine workflow die je waarschuwt wanneer de back-up geen succes heeft gerapporteerd.
Stap 8: Test herstel
Lijst snapshots:
restic snapshots
Herstellen naar een testlocatie:
restic restore latest --target /tmp/restore-test
Minstens elke paar maanden, herstel naar een aparte testserver en controleer of de applicatie daadwerkelijk draait. Dat is het enige echte bewijs dat je back-ups werken.
Bescherming tegen ransomware
Als een aanvaller roottoegang tot je server krijgt, kunnen ze ook back-ups verwijderen waar de server naar kan schrijven. Bescherm jezelf met:
- Append-only of onveranderlijke opslag (objectlock / versiebeheer op S3-compatibele opslag)
- Haal backups van een aparte backupserver, zodat de webserver geen verwijderrechten heeft
- Gescheiden inloggegevens die niet op de productie-server zijn opgeslagen waar mogelijk
Snapshots vs back-ups
VPS en cloud snapshots zijn nuttig voor snelle terugrollingen vóór updates, maar ze worden vaak opgeslagen bij dezelfde provider en soms op dezelfde locatie. Gebruik ze naast off-site back-ups, niet in plaats van.
Back-up checklist
| Item | Klaar? |
|---|---|
| Databases consistent gedumpt | |
| Media- en configuratiebestanden inbegrepen | |
| Off-site versleutelde kopie | |
| Onveranderlijke of offline kopie | |
| Retentiebeleid ingesteld | |
| Monitoring en waarschuwingen | |
| Hersteld getest in de laatste 3 maanden | |
| Wachtwoorden en sleutels in wachtwoordbeheerder |
Veelgestelde vragen
Hoe vaak moet ik mijn webwinkel back-uppen?
Minstens dagelijks voor de meeste winkels. Drukke winkels met veel bestellingen per uur maken vaak vaker een back-up van de database of gebruiken replicatie plus point-in-time herstel.
Is de backup van mijn hostingprovider voldoende?
Het is een nuttige extra laag, maar je kunt meestal de retentie, locatie of herstelsnelheid niet controleren. Zorg ook voor je eigen off-site back-up.
Restic of Borg?
Beide zijn uitstekend. Restic ondersteunt veel cloudopslag backends direct; Borg is zeer efficiënt en wordt vaak gebruikt met SSH-gebaseerde opslag. Kies degene die het beste past bij jouw opslagdoel.
Wilt u back-ups waarop u kunt vertrouwen?
Ik stel servers in en onderhoud deze, evenals back-ups en herstelprocedures voor webshops en zakelijke toepassingen. Bekijk mijn servers, virtualisatie en back-upservice of vraag hulp aan.