Backups zijn leuk maar geteste backups zijn nuttig. Zo kwam het dat ik de disk uit mijn Ubuntu-server trok en er een lege disk in stopte om te kijken hoe compleet mijn backupsysteem was.
Het viel me op dat het in Debian-systemen (*nix in het algemeen) erg makkelijk is om alles in één keer te backuppen. Ik was een lijst aan het maken van wat ik moest backuppen op een nieuwe server en dat waren de volgende dingen:
- configuratiebestanden van geïnstalleerde software;
- websites;
- de software zelf;
- instellingen van de router/firewall;
- MySql-databases.
De userdata op de server backup ik op een andere manier en deze server is geen mailserver.
Backups zijn er grofweg in twee smaken: backups voor historische redenen en backups voor disaster recovery. Historische backups gebruik je als je er vandaag achterkomt dat je twee weken geleden een bestand overschreven hebt waarvan je een oude versie nodig hebt. Disaster recovery is voor als je server compleet onbruikbaar geworden is, zoals bv. door diefstal, brand of een vervloeking.
Voor disaster recovery gebruik ik CloneZilla. De server moet daar een half uurtje voor uit de lucht maar als je het eens per maand doet vind ik het een mooie trade-off tussen gemak en functionaliteit aan de ene kant en downtime aan de andere kant.
Voor historische backups heb ik een aantal dingen geprobeerd maar uiteindelijk heb ik toch zelf een scriptje gebakken. Dit is wat het doet:
- maak een backup van /etc met tar voor de configuratiebestanden
- maak een backup van /var/www met tar voor de websites
- doe dpkg –get-selections > selections voor de software (via dpkg –set-selections < selections kan je alles dan weer automatisch laten installeren)
- iptables-save > iptables voor de router/firewall (restoren met iptables-restore < iptables)
- backup alles MySql-databases met mysqldump -u root –password=p@55w0rd –events –all-database > mysql (restoren met mysql -u root -p < mysql)
- maak een mooie logfile en mail die naar me
Ik had weinig ervaring met bash-scripting maar het viel me mee hoe eenvoudig het allemaal in elkaar zit. Het lijkt of je dichter op het os zit dan in Windows en daarom minder rekening hoeft te houden met lagen bovenop je os en je software.
De historische backups kan je gebruiken als differentiële backups die je aan je disaster recovery toe kan voegen. Dat houdt in dat je je systeem vanaf niks herstelt met de image van CloneZilla en dan aanvult met de meest recente historische backup – een beproefde methode.
Zie ook: The Tao Of Backup. Een reclame, maar wel erg grappig en leerzaam.
Het restoren van mijn Ubuntu-server is overigens prima verlopen. Ik begon zoals ik dacht dat logisch was (systeem installeren, software, updates, data, databases, config-files) en alles werkte eigenlijk zoals je zou verwachten.