Backups automatisch laten draaien met cronjobs
(Stel een "set-and-forget" backup-strategie op voor je bestanden en databases)
Regelmatige, automatische backups zijn je belangrijkste verzekering tegen dataverlies. Met een bash-script en een cronjob kun je dit volledig automatiseren.
1. Een backup-script maken
-
Maak een backupmap aan:
sudo mkdir /backups -
Maak een scriptbestand aan:
sudo nano /usr/local/bin/backup.sh -
Plak en pas het script aan:
#!/bin/bash
# --- CONFIGURATIE ---
BACKUP_DIR="/backups"
WEB_DIR="/var/www/mijndomein.nl/html"
DB_NAME="mijnwebsite_db"
DB_USER="mijnwebsite_user"
DB_PASS="een_sterk_wachtwoord"
# --- SCRIPT ---
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
# Websitebestanden
tar -czf "$BACKUP_DIR/files-$TIMESTAMP.tar.gz" "$WEB_DIR"
# Database
mysqldump -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" | gzip > "$BACKUP_DIR/database-$TIMESTAMP.sql.gz"
# Verwijder oude backups
find "$BACKUP_DIR" -type f -mtime +7 -name '*.gz' -delete -
Maak het script uitvoerbaar:
sudo chmod +x /usr/local/bin/backup.sh
2. De cronjob inplannen
-
Open de crontab voor root:
sudo crontab -e -
Voeg toe om het script elke nacht om 03:15 uit te voeren:
15 3 * * * /usr/local/bin/backup.sh >/dev/null 2>&1 -
Dit voorkomt e-mailnotificaties en voert het script stil uit
3. Off-site backups (Belangrijk!)
-
Gebruik rclone om backups te synchroniseren met cloudopslag (Google Drive, Backblaze B2, Dropbox)
-
Voeg toe aan je script:
/usr/bin/rclone copy "$BACKUP_DIR" remote:vps_backups --include "*-${TIMESTAMP}.*" -
Installeer en configureer rclone vooraf via
rclone config
Samenvatting
-
Maak een script dat bestanden en database backupt
-
Plan het script met cron voor automatische uitvoering
-
Gebruik rclone voor off-site opslag
✅ Tip: Test je backups regelmatig! Zet een test-database op en importeer een SQL-backup om te controleren of deze werkt.
Hulp nodig? Controleer cron-logs met grep CRON /var/log/syslog. Veel fouten komen door permissies of verkeerde paden.
