automatische backups instellen op linux
Automatische Backups Instellen Op Linux
Automatische backups instellen op Linux
Dit artikel legt uit hoe je automatische backups instelt op Linux met `cron`, `systemd` of een dedicated tool. Geschikt voor systeembeheerders en developers.
Vereisten
- Linux-distributie met `cron` (bijv. Ubuntu 24.04, Debian 12) - Optioneel: `rsync` 3.2.7 of nieuwer, `systemd` 255 of nieuwer - SSH-sleutels voor wachtwoordloze authenticatie bij remote backups - Sudo-toegang voor installatie en servicebeheer
Stappen
1. Kies een scheduler en back-up tool. Voor een enkele gebruiker: `cron` + `rsync`. Voor servers: `systemd` + eigen script. Voor GUI: Duplicati 2.0.7 of Cronopete 4.0.
2. Maak een back-upscript. Maak `/usr/local/bin/backup.sh` met dit voorbeeld: ```bash #!/bin/bash TIMESTAMP=$(date +%Y%m%d-%H%M%S) rsync -av --delete --link-dest=/backups/current /home/user/ /backups/$TIMESTAMP/ ln -snf /backups/$TIMESTAMP /backups/current echo "Backup completed at $TIMESTAMP" >> /var/log/backup.log 2>&1 ``` Maak het uitvoerbaar: `chmod +x /usr/local/bin/backup.sh`
3. Stel een cronjob in. Voeg een regel toe aan de crontab van de root-gebruiker: `sudo crontab -e` ``` 0 2 * /usr/local/bin/backup.sh ``` Dit draait het script elke dag om 02:00.
4. Of gebruik systemd (aanbevolen voor servers). Maak `/etc/systemd/system/backup.service`: ``` [Unit] Description=Backup service [Service] ExecStart=/usr/local/bin/backup.sh ``` Maak `/etc/systemd/system/backup.timer`: ``` [Unit] Description=Daily backup timer [Timer] OnCalendar=daily Persistent=true [Install] WantedBy=timers.target ``` Activeer de timer: `sudo systemctl enable backup.timer --now`
5. Configureer remote backups (optioneel). Voeg SSH-sleutel toe aan de remote server: `ssh-copy-id user@remote-host` Pas het script aan: vervang bron door `user@remote-host:/data/` voor pull-backups.
6. Voeg retentie en logging toe. Breid het script uit: verwijder backups ouder dan 30 dagen: ```bash find /backups/ -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \; ``` Stuur e-mail bij fouten: `mail -s "Backup FAILED" admin@example.com < /var/log/backup.log`
7. Optioneel: installeer Duplicati voor GUI-beheer. Download en installeer: `wget https://duplicati.com/download/duplicati_2.0.7.1-1_all.deb && sudo dpkg -i duplicati_2.0.7.1-1_all.deb` Start de service: `sudo systemctl enable duplicati --now` Open de webinterface op `http://localhost:8200`.
Verificatie
Controleer of de cronjob of timer actief is: `sudo systemctl status backup.timer` Of controleer de logs: `tail -f /var/log/backup.log`
Maak een testbestand en wacht op de volgende run, of voer het script handmatig uit: `sudo /usr/local/bin/backup.sh` Controleer de doelmap op de aanwezigheid van de back-upmap: `ls /backups/`
Veelgestelde problemen
1. `rsync` faalt met 'Permission denied' Oorzaak: ontbrekende SSH-sleutels of verkeerde permissies op de bron. Oplossing: test connectiviteit met `ssh user@remote-host` en zorg dat de sleutel is toegevoegd.
2. systemd-timer start niet Oorzaak: de timer-unit is niet enabled of de naam klopt niet. Oplossing: `sudo systemctl list-timers --all` en activeer met `sudo systemctl enable backup.timer --now`.
3. Script wordt niet uitgevoerd op het ingestelde tijdstip Oorzaak: systeemklok is niet synchroon of cron-daemon draait niet. Oplossing: controleer met `timedatectl` en start cron opnieuw met `sudo systemctl restart cron`.
Welke tool kies jij voor jouw omgeving: de eenvoud van `cron` of de betrouwbaarheid van `systemd`?