automatische backups instellen op linux
Automatische Backups Instellen Op Linux
Automatische backups instellen op Linux
Dit artikel legt uit hoe je automatische backups opzet met `rsync` en `cron` op Linux — voor zowel thuisgebruikers als serverbeheerders.
Vereisten - Linux-distributie met `cron`-daemon (getest op Ubuntu 22.04 LTS, Debian 12) - `rsync` versie 3.2.7 of hoger - Backup-doel (externe schijf, NAS, of remote server) — fysiek gescheiden van primaire data - Root of sudo-toegang voor systeembrede configuratie
Stappen
1. Installeer rsync ```bash sudo apt update && sudo apt install rsync -y ``` `rsync` voert incrementele bestandsspiegelingen uit. Deze stap installeert versie 3.2.7 of hoger.
2. Maak het backupdoel aan ```bash sudo mkdir -p /mnt/backup/home ``` Dit is de lokatie waar de backup naartoe schrijft. Vervang `/mnt/backup` met het mountpoint van je externe schijf of NAS.
3. Test rsync handmatig ```bash rsync -av --delete /home/ /mnt/backup/home/ ``` Opties: `-a` (archiefmodus, behoudt permissies), `-v` (verbose), `--delete` (verwijdert bestanden op doel die niet meer in bron staan). Controleer de output op fouten.
4. Open de crontab-editor ```bash crontab -e ``` Kies nano als editor bij eerste keer. Deze opent het crontab-bestand van de huidige gebruiker.
5. Voeg de backup-regel toe Voeg deze regel onderaan het bestand: ```bash 30 2 * /usr/bin/rsync -a --delete /home/ /mnt/backup/home/ --log-file=/var/log/backup-home.log ``` Uitvoering: elke dag om 02:30. `--log-file` schrijft een log naar `/var/log/backup-home.log` voor verificatie.
6. Sla het crontab-bestand op Nano: `Ctrl+O`, Enter, `Ctrl+X`. Vim: `:wq`. De cron-daemon laadt de nieuwe configuratie automatisch.
7. (Optioneel) Incrementele backups met hard links Maak een script aan `/usr/local/bin/backup-incremental.sh`: ```bash #!/bin/bash DATE=$(date +%Y-%m-%d) DEST="/mnt/backup/home-$DATE" LATEST="/mnt/backup/home-latest" rsync -a --delete --link-dest=$LATEST /home/ $DEST/ rm -f $LATEST && ln -s $DEST $LATEST ``` Maak uitvoerbaar: `chmod +x /usr/local/bin/backup-incremental.sh`. Gebruik dit script in crontab met `30 3 * /usr/local/bin/backup-incremental.sh`. Alleen gewijzigde bestanden nemen nieuwe schijfruimte in.
Verificatie
Controleer of de backup is uitgevoerd: ```bash cat /var/log/backup-home.log | tail -20 ``` Als de log verschijnt met `sent` en `total size` is de pipeline actief. Forceer een testrun: ```bash /usr/bin/rsync -a --delete /home/ /mnt/backup/home/ --dry-run ``` `--dry-run` toont wat er zou gebeuren zonder wijzigingen aan te brengen.
Veelgestelde problemen
Backup wordt niet uitgevoerd op geplande tijd Controleer of cron-daemon draait: `systemctl status cron`. Check je crontab-syntaxis met `crontab -l`. Fout in de regel = geen backup.
rsync geeft permission denied voor sommige bestanden Gebruik sudo in crontab (rootgebruiker): `sudo crontab -e` en voeg de regel toe. Root heeft toegang tot alle bestanden.
Geen schijfruimte meer op backup-doel `rsync --delete` verwijdert alleen bestanden van het doel die niet meer in bron staan. Handmatig opruimen met `du -sh /mnt/backup/*` om te zien wat ruimte inneemt.
Je kunt `cron` vervangen door `systemd-timers` voor meer flexibiliteit — die ondersteunen failover en gedetailleerde logging.