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.

Was dit antwoord nuttig? 0 gebruikers vonden dit artikel nuttig (0 Stemmen)

Powered by WHMCompleteSolution