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.