automatische backups instellen op linux
Automatische Backups Instellen Op Linux
Automatische backups instellen op Linux
Dit artikel legt uit hoe je een geautomatiseerd backupsysteem opzet met rsync en cron of systemd-timers, geschikt voor Linux-servers en desktops.
Vereisten
- Linux-distributie met systemd ≥ 219 of cron (getest op Ubuntu 22.04, Debian 12, RHEL 9) - rsync ≥ 3.2.3 - Toegang tot een externe opslaglocatie (externe schijf, NAS, of cloudopslag) - sudo-rechten voor systeemdiensten
Stappen
1. Maak het backup-script aan
Open een nieuw bestand `/usr/local/bin/backup-home.sh`:
```bash #!/bin/bash BACKUP_SRC="/home/gebruiker" BACKUP_DST="/mnt/backup/home" TIMESTAMP=$(date +%Y%m%d_%H%M%S) LOG_FILE="/var/log/backup-home.log"
rsync -avz --delete --link-dest="$BACKUP_DST/laatste" "$BACKUP_SRC" "$BACKUP_DST/$TIMESTAMP" >> "$LOG_FILE" 2>&1
rm -f "$BACKUP_DST/laatste" ln -s "$BACKUP_DST/$TIMESTAMP" "$BACKUP_DST/laatste" ```
Het script maakt een incrementele backup met hardlinks naar de vorige backup, wat schijfruimte bespaart.
2. Maak het script uitvoerbaar
```bash chmod +x /usr/local/bin/backup-home.sh ```
3. Kies een scheduler: cron
Open de crontab van root:
```bash sudo crontab -e ```
Voeg deze regel toe voor dagelijkse backups om 03:00:
```bash 0 3 * /usr/local/bin/backup-home.sh ```
Met cron werk je zonder systeemdiensten en start het automatisch bij elke herstart.
4. Of kies een scheduler: systemd-timer
Maak het service-bestand `/etc/systemd/system/backup-home.service`:
```ini [Unit] Description=Dagelijkse home-directory backup
[Service] Type=oneshot ExecStart=/usr/local/bin/backup-home.sh User=root ```
Maak het timer-bestand `/etc/systemd/system/backup-home.timer`:
```ini [Unit] Description=Timer voor dagelijkse backup
[Timer] OnCalendar=daily Persistent=true
[Install] WantedBy=timers.target ```
5. Activeer de systemd-timer
```bash sudo systemctl daemon-reload sudo systemctl enable --now backup-home.timer ```
`Persistent=true` zorgt dat gemiste backups worden ingehaald na een systeemherstart.
6. Monteer de externe opslag permanent
Voeg een regel toe aan `/etc/fstab`:
```bash
UUID=
Vervang `
7. Test de backup handmatig
```bash sudo /usr/local/bin/backup-home.sh ```
Controleer de logfile op fouten: `cat /var/log/backup-home.log`.
Verificatie
Controleer of de scheduler actief is:
- Voor cron: `sudo crontab -l | grep backup-home` - Voor systemd: `systemctl list-timers | grep backup-home`
Controleer of de backupbestanden bestaan:
```bash ls -la /mnt/backup/home/laatste ```
Een correcte output toont een symlink naar de meest recente backupmap.
Veelgestelde problemen
1. rsync: permission denied op bepaalde bestanden
Los op door het script als root uit te voeren (crontab van root gebruiken) of maak een dedicated backup-user met sudo-rechten voor rsync.
2. Backup naar externe schijf mislukt na herstart
Controleer of de schijf correct is gemount in `/etc/fstab`. Test met `mount -a`. Voeg `nofail` toe aan de fstab-opties om boot-fouten te voorkomen.
3. Incrementele backups nemen te veel schijfruimte
Verhoog het aantal hardlinks door oudere backups te verwijderen met een apart script:
```bash find /mnt/backup/home -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \; ```
Backups ouder dan 30 dagen worden dan automatisch opgeruimd.