Tip #2: Serverbackups via mail

by Ben

Iedereen weet wel dat backups belangrijk zijn, maar toch maakt niemand ze. Ik werd enkele dagen terug met m’n neus op de feiten gedrukt: backups zijn nodig !!

Fab4 is een fantastische host tot nu toe, maar spijtig genoeg maken ze geen backups van de server. Dit staat duidelijk op hun webpagina vermeld.

Fab4 does not have a backupserver, so if it would ever happen that our server crashes, you’re site could be down for a while – don’t worry , the server doesn’t run on Windows.

De kunst is dus om zelf backups te maken. En liefst zo dat we er zelf weinig werk aan hebben. ;-) Gelukkig heb ik SSH toegang, zodat je een scriptje kan gebruiken.

Gisterenavond vond ik een prachtig script op een backup te nemen van een WordPressinstallatie. Met een klein beetje aanpassing is dit script echter ook geschikt om een backup van een gebruikersdirectory te nemen. Bijkomend voordeel is dat het script ook een dump maakt van je MySQL database. Alles wordt gecomprimeerd en naar een gegeven e-mailadres gestuurd. Gmail blijkt zeer geschikt hiervoor (mail me maar als je een invite wilt).

Je vindt het script hier. Downloadt het, plaats het in de hoofddirectory van je gebruikersaccount en vul de variabelen in. Daarna doe je:

mv backup.txt backup.sh
chmod 755 backup.sh

Om het script uit te voeren doe je:

./backup.sh

Op die manier mag je natuurlijk niet vergeten om het script regelmatig uit te voeren, want anders is het nog niets waard. Gelukkig hebben we cron. Dit Linuxprogrammaatje zorgt ervoor dat je bepaalde opdrachten op een opgegeven tijdstip kan uitvoeren. Mits je hiervoor de benodigde rechten hebt, kan je cron gebruiken om het script op vaste tijdstippen uit te voeren.

Gebruik het volgende commando om je crontab te bewerken (dit is het configuratiebestand van cron):

crontab -e

Je krijgt nu een editor te zien (grote kans dat het Vim is of een afgeleide daarvan). Nu komt het er op aan om de juiste informatie in de cron te krijgen. Ik laat cron de backups doormailen iedere nacht om 3u33 (‘s nachts is het meestal wat rustiger). Hiervoor gebruik ik de volgende code:

33 3 * * * /home/users/ben/backup.sh > /dev/null 2>&1

Bekijk de manual van cron voor meer informatie over de schrijfwijze. De > /dev/null 2>&1 is nodig om geen onnodige informatie naar de terminal te sturen.

En de volgende ochtend vind je de backups in je mail. :-)