Kennisbank automatische backups instellen op linux
gemiddeld 01 June 2026

automatische backups instellen op linux

Automatische backups instellen op LinuxDit artikel legt uit hoe je een geautomatiseerde backup oplossing opzet met rsync en cron of systemd — voor
Automatische Backups Instellen Op Linux
✦ ✦ ✦

Automatische Backups Instellen Op Linux

HistorieCheck Redactie  ·  01 June 2026  ·  Geschiedenis

Automatische backups instellen op Linux

Dit artikel legt uit hoe je een geautomatiseerde backup oplossing opzet met rsync en cron of systemd — voor systeembeheerders die een betrouwbare, herhaalbare backupstrategie willen implementeren.

Vereisten

- Linux distributie (getest op Ubuntu 24.04, Debian 12, CentOS 9) - `rsync` versie 3.2.7 of hoger (`rsync --version` controleren) - `cron` of `systemd` (242+) — beide zijn standaard aanwezig op vrijwel elke Linux installatie - Root toegang of sudo rechten voor schrijven naar `/usr/local/bin/` en `/var/log/` - Bestemmingslocatie voor backups: externe schijf (gemount), NAS of externe server (via SSH)

Stappen

1. Maak een backup script aan

Open een nieuw bestand `/usr/local/bin/backup.sh`:

```bash sudo nano /usr/local/bin/backup.sh ```

Voeg de volgende inhoud toe:

```bash #!/bin/bash rsync -avz --delete /pad/naar/data/ /pad/naar/backup/ ```

- `-a`: archive mode (behoudt permissies, symlinks, timestamps) - `-v`: verbose output - `-z`: comprimeert data tijdens transport - `--delete`: verwijdert bestanden uit backup die niet meer in bron bestaan

2. Voeg logging en uitzonderingen toe

Pas het script aan zodat het output naar een logbestand schrijft:

```bash #!/bin/bash rsync -avz --delete --exclude='.cache' --exclude='*.tmp' \ /pad/naar/data/ /pad/naar/backup/ >> /var/log/backup.log 2>&1 ```

`2>&1` stuurt foutmeldingen naar hetzelfde logbestand als normale output.

3. Maak het script uitvoerbaar

```bash sudo chmod +x /usr/local/bin/backup.sh ```

4. Plan de backup met cron

Open de crontab voor root:

```bash sudo crontab -e ```

Voeg deze regel toe voor een dagelijkse backup om 2:00 uur:

``` 0 2 * /usr/local/bin/backup.sh ```

Tijd formaat: minuut, uur, dag, maand, weekdag. `0 2 *` betekent elke dag om 02:00.

5. Alternatief: plan de backup met systemd timer

Maak een service unit aan `/etc/systemd/system/backup.service`:

```ini [Unit] Description=Dagelijkse rsync backup

[Service] Type=oneshot ExecStart=/usr/local/bin/backup.sh ```

Maak een timer unit aan `/etc/systemd/system/backup.timer`:

```ini [Unit] Description=Timer voor dagelijkse backup

[Timer] OnCalendar=daily Persistent=true

[Install] WantedBy=timers.target ```

Start en activeer de timer:

```bash sudo systemctl daemon-reload sudo systemctl enable backup.timer sudo systemctl start backup.timer ```

6. Test het script handmatig

```bash sudo /usr/local/bin/backup.sh ```

7. Voeg incrementele rotatie toe (optioneel)

Voor een robuustere strategie met dagelijkse, wekelijkse en maandelijkse snapshots, gebruik je rsync met hardlinks. Vervang de inhoud van `backup.sh` door:

```bash #!/bin/bash DATE=$(date +%Y-%m-%d) BACKUP_DIR="/pad/naar/backups/$DATE" LATEST="/pad/naar/backups/latest"

mkdir -p "$BACKUP_DIR" rsync -avz --delete --link-dest="$LATEST" \ /pad/naar/data/ "$BACKUP_DIR"

rm -f "$LATEST" ln -s "$BACKUP_DIR" "$LATEST" ```

`--link-dest` gebruikt hardlinks naar de vorige backup voor bestanden die niet veranderd zijn — dit bespaart schijfruimte terwijl je toch meerdere versies behoudt.

Verificatie

Controleer of de backup draait zoals gepland:

```bash Voor cron: crontab -l | grep backup

Voor systemd timer: sudo systemctl status backup.timer

Bekijk de laatste regels van het log: tail -20 /var/log/backup.log

Controleer of het doelmappaden bestaan en de juiste bestanden bevatten: ls -la /pad/naar/backup/ ```

Veelgestelde problemen

1. backup.log bevat foutmeldingen over 'Permission denied'

Het script draait niet met de juiste rechten of de bronbestemming is niet toegankelijk. Zorg dat het script als root draait (gebruik `sudo crontab -e` in plaats van `crontab -e` zonder sudo) en controleer of de doelmount gemount is.

2. rsync failt met 'Connection refused' bij externe bestemming

SSH access naar de externe server werkt niet. Test eerst handmatig: `rsync -avz testfile gebruiker@externeserver:/pad/`. Voeg zo nodig SSH-sleutels toe met `ssh-keygen` en `ssh-copy-id`.

3. Backups draaien niet op het geplande tijdstip

Gebruik `systemctl list-timers` om te controleren of de timer geactiveerd is. Bij cron controleer je het syslog: `grep CRON /var/log/syslog`. De meest voorkomende oorzaak is dat de systeemtijd niet klopt of dat de cron daemon niet draait.

Heb je een specifiek use case, zoals backups naar een S3 bucket of encrypted backups? Dan zijn er aanpassingen nodig op bovenstaand script — de basis blijft hetzelfde.

— ✦ —
← Terug naar kennisbank