Selecteer een pagina

Je werkt ’s avonds nog even door en realiseert je dat je al weken geen handmatige back-up meer hebt gemaakt. Eén onvoorzichtige wijziging kan je hele setup om zeep helpen. In plaats van iedere keer in te loggen en handmatig mappen te kopiëren, kun je met een simpel Bash-script dagelijkse back-ups automatiseren en ’s ochtends serverbestanden in je mailbox terugvinden.


1. De basis: rsync en compressie

In je Bash-script gebruik je rsync om alleen gewijzigde bestanden te kopiëren, waardoor back-uptijden en bandbreedteverbruik minimaal blijven:

#!/bin/bash
BACKUP_SRC="/var/www/html"
BACKUP_DEST="/backups/$(date +%F)"
mkdir -p "$BACKUP_DEST"
rsync -a --delete "$BACKUP_SRC/" "$BACKUP_DEST/"
tar -czf "/backups/backup-$(date +%F).tar.gz" -C "/backups/$(date +%F)" .
rm -rf "/backups/$(date +%F)"

Zo bewaar je per dag één gecomprimeerd archief in backups/, klaar voor herstel.


2. Versiebeheer met retention-beleid

Met een paar extra regels houd je alleen back-ups van de afgelopen zeven dagen, waardoor je opslag onder controle blijft:

find /backups/ -maxdepth 1 -type f -name "backup-*.tar.gz" -mtime +7 -delete

Na het draaien van het hoofdscript verwijdert deze regel oudere archieven automatisch.


3. Integratie met cron voor volledige automatisering

Open je crontab (crontab -e) en voeg een regel toe om het script dagelijks om 02:00 uur te laten draaien:

0 2 * * * /usr/local/bin/backup-script.sh >> /var/log/backup.log 2>&1

Zo ontvang je bij elke run een logmelding in /var/log/backup.log en hoef je je ’s nachts geen zorgen te maken.


4. Optioneel: meldingen per e-mail

Wil je direct weten of er iets misgaat? Voeg na het rsync-commando een e-mailnotificatie toe:

if [ $? -eq 0 ]; then
  echo "Backup succeeded on $(date)" | mail -s "Backup Success" youremail@example.com
else
  echo "Backup FAILED on $(date)" | mail -s "Backup Failure" youremail@example.com
fi

Zo krijg je dagelijks geruststellende berichten of direct een waarschuwing bij fouten.


5. Veiligheid en tests

Test je script handmatig met bash backup-script.sh en controleer of back-ups correct worden gemaakt en oude versies worden verwijderd. Beperk vervolgens de rechten op je script (chmod 700) zodat alleen root of een beheerder het kan uitvoeren.


Voor wie verder wil duiken in server-beheer en snapshots versus back-ups, zijn de tutorials op CloudVPSbox.nl handig om je infrastructuur nog robuuster te maken.