Hoofdstuk 12 van 12 · Serverbeheer
Back-up en herstel
4 lesuren
De GreenLeaf-website bevat belangrijke gegevens. In dit afsluitende hoofdstuk maak je back-ups, test je herstel en bepaal je hoe je een server na gegevensverlies weer operationeel krijgt.
Na dit hoofdstuk kun je
- Verschillende back-upsoorten en opslaglocaties vergelijken.
- Met tar en rsync een bestandsback-up maken.
- Een bestand gecontroleerd terugzetten en testen.
- Een periodieke back-uptaak opzetten en de beperkingen kennen.
Wat is een goede back-up?
Een back-up is een afzonderlijke reservekopie waarmee je gegevens na verwijdering, schade of ransomware kunt herstellen. Een VM-snapshot is handig voor korte laborexperimenten, maar is geen volledige back-upstrategie.
Een volledige back-up bevat alle geselecteerde bestanden. Een incrementele back-up bevat alleen wijzigingen sinds een eerdere back-up. Een lokale kopie is gemakkelijk maar kwetsbaar als de complete server verloren gaat.
- 3-2-1-principe: drie kopieën, op twee verschillende media, waarvan één elders.
- RPO: hoeveel recent gegevensverlies maximaal acceptabel is.
- RTO: hoe snel een dienst weer beschikbaar moet zijn.
- Hersteltest: bewijs dat je een reservekopie daadwerkelijk kunt terugzetten.
Controleer eerst de back-upschijf
In hoofdstuk 9 heb je een extra partitie als /back aangekoppeld. Controleer eerst dat dit daadwerkelijk de tweede schijf is. Anders sla je de kopie mogelijk op de systeemschijf op.
findmnt /back
df -h /back
sudo mkdir -p /back/website
Back-up met rsync
rsync vergelijkt bestanden en kopieert alleen verschillen. De slash aan het einde van de bronmap is belangrijk: daarmee kopieer je de inhoud naar de doelmap.
sudo apt install rsync
sudo rsync -av /var/www/greenleaf/ /back/website/
sudo ls -la /back/website | head
sudo rsync -avn /var/www/greenleaf/ /back/website/
Gecomprimeerd archief met tar
tar maakt van meerdere bestanden één archief. Met -z wordt gzip-compressie gebruikt. Dit maakt het handig om een archief naar een andere opslaglocatie te verplaatsen.
sudo tar -czf /back/greenleaf-web-$(date +%F).tar.gz -C /var/www greenleaf
sudo tar -tzf /back/greenleaf-web-$(date +%F).tar.gz | head
sudo ls -lh /back/*.tar.gz
Belangrijk: ook de database back-uppen
Een WordPress-back-up is pas compleet wanneer je zowel de bestanden als de database bewaart. In de webmap staan thema’s, plugins en uploads; in MariaDB staan pagina’s, instellingen en gebruikers.
sudo sh -c "umask 077; mariadb-dump greenleaf_wp > /back/greenleaf-db.sql"
sudo ls -lh /back/greenleaf-db.sql
Een hersteltest uitvoeren
Voor een volledige WordPress-hersteltest zet je de database-export in een afzonderlijke testdatabase terug en verbind je een testsite aan deze database. Doe dit niet blind op de live database.
sudo mkdir -p /tmp/greenleaf-restore
sudo rsync -av /back/website/ /tmp/greenleaf-restore/
sudo diff -qr /var/www/greenleaf /tmp/greenleaf-restore
sudo tar -tzf /back/greenleaf-web-$(date +%F).tar.gz | head
Dagelijks automatisch back-uppen
Met cron kan iedere avond een back-up worden gestart. Gebruik bij voorkeur een eigen script, zodat je foutafhandeling, logging en controle centraal kunt beheren.
sudo crontab -e
0 22 * * * /usr/bin/rsync -a /var/www/greenleaf/ /back/website/ >> /var/log/greenleaf-backup.log 2>&1
sudo crontab -l
Eindcontrole van het leertraject
Je hebt nu een Linux Mint-werkstation en een Ubuntu Server geïnstalleerd, gebruikers en rechten beheerd, opslag en firewall ingericht, een website gehost, monitoring opgezet en een herstelprocedure uitgevoerd.
Leg in je eindlogboek vast welke diensten actief zijn, hoe ze worden bijgewerkt, hoe je fouten onderzoekt en hoe je back-ups terugzet. Hiermee heb je de basis gelegd voor zelfstandig Linux-serverbeheer.
Praktijkopdracht
Eindopdracht: herstel GreenLeaf na gegevensverlies
Simuleer gegevensverlies in een veilige, niet-productieomgeving en bewijs dat herstel werkt.
- Controleer dat
/backecht op de extra schijf staat. - Maak een testbestand in de GreenLeaf-website en daarna een rsync-back-up en tar-archief.
- Exporteer de MariaDB-database van de oefenwebsite.
- Verwijder uitsluitend het speciaal aangemaakte testbestand en zet dit terug uit
/back/website. - Controleer met
diffof de herstelkopie overeenkomt met de bron. - Maak een tijdelijke cronregel, test die en verwijder hem weer.
- Schrijf een kort herstelplan met RPO, RTO, controlemaatregelen en externe back-uplocatie.
Bewijs voor je logboek: Overzicht van back-upbestanden, database-export, geslaagde hersteltest, logbestand en kort herstelplan.
Controleer je kennis
- Waarom is een snapshot geen vervanging voor een back-up?
- Welke twee onderdelen zijn nodig voor een volledige WordPress-back-up?
- Wat betekent het 3-2-1-principe?
- Hoe bewijs je dat een back-up echt bruikbaar is?
Begrippen
- Back-up
- Reservekopie van gegevens.
- Rsync
- Tool voor bestandssynchronisatie.
- tar
- Archiveringsprogramma.
- Restore
- Gegevens vanuit een back-up terugzetten.
- RPO
- Maximaal acceptabel gegevensverlies in tijd.
- RTO
- Maximaal acceptabele hersteltijd.
Hoofdstuk afgerond?
Voer eerst de praktijkopdracht uit en sla je bewijs op in je eigen logboek.
