Publiserad
Uppdaterad

En av de äldsta funktionerna i Seravos planer för WordPress-webbhotell och kontinuitetsplanering är funktionen för daglig reservkopiering. Vi reservkopierar alla våra kunders WordPress-webbplatser varje dag och sparar ett exemplar av dessa säkerhetskopior på våra servrar i 30 dagar. I många fall har dessa säkerhetskopior räddat våra kunder från stora skador och mycket merarbete.

I denna artikel berättar vi om bästa praxis för säkerhetskopiering och återställning av din webbplats.

Att köra ett kommando för säkerhetskopiering från kommandoraden

Alla processer för säkerhetskopiering sker direkt i servern och inte inuti kundens WordPress-installationer. Det som gör denna funktion speciell och extremt värdefull för våra kunder när man skapar en säkerhetskopia eller återställer från en kopia är att säkerhetskopieringen inte är beroende av att WordPress eller någon annan PHP-kod fungerar. Denna metod för säkerhetskopiering innebär dessutom extra säkerhet eftersom eventuella risker för dataintrång i en WordPress-webbplats inte ger automatisk åtkomst till säkerhetskopior, vilket begränsar de potentiella skadorna då den som attackerar webbplatsen inte kommer åt att direkt radera säkerhetskopiorna.

Säkerhetskopiorna omfattar databasen och alla filerna. Oberoende av vilken automatisering som används kan säkerhetskopieringen dessutom startas manuellt genom att man över kommandoraden i en SSH-ansluting ger kommandot:

$ wp-backup

Detta kommando skapar en ny databas som matas ut till filen /data/db/example.sql och därefter kopierar alla filer (inklusive den nya databasfilen) till mappen /data/backups.

Utesluta filer från säkerhetskopiering

Själva katalogen för säkerhetskopiering är naturligtvis undantagen från säkerhetskopiering. Om användaren vill utesluta något mer från säkerhetskopieringen kan filen eller katalogen läggas till i filen /data/backups/exclude.filelist.

Leta bland säkerhetskopierade filer

Systemet för säkerhetskopiering använder kommandoradsprogrammet rdiff-backup. Datat från den senaste säkerhetskopian finns i katalogen /data/backups/data. Datat från tidigare säkerhetskopior sparas i katalogen /data/backups/data/rdiff-backup-data/.

Alla säkerhetskopior kan listas med kommandot:

$ rdiff-backup -l /data/backups/data/
Found 30 increments:
 increments.2016-01-26T04:16:46+02:00.dir Tue Jan 26 04:16:46 2016
 increments.2016-01-27T04:20:26+02:00.dir Wed Jan 27 04:20:26 2016
 increments.2016-01-28T04:14:48+02:00.dir Thu Jan 28 04:14:48 2016
 increments.2016-01-29T04:19:06+02:00.dir Fri Jan 29 04:19:06 2016
...
Current mirror: Mon Feb 22 18:53:55 2016

Alternativt kan du köra ett kommando för att visa totalt diskutrymme i säkerhetskopian och vilken storlek de noterade ändringarna har i varje säkerhetskopia:

$ rdiff-backup --list-increment-sizes /data/backups/data

Time Size Cumulative size 
--------------------------------------
Mon Feb 15 04:02:02 2016 514 KB 237 MB (current mirror)
Sun Feb 14 04:15:02 2016 1.04 MB 238 MB
Sat Feb 13 04:12:45 2016 546 KB 239 MB
Fri Feb 12 04:15:01 2016 917 KB 240 MB 
Thu Feb 11 04:19:14 2016 552 KB 240 MB
Wed Feb 10 03:22:29 2016 691 KB 241 MB
Tue Feb 9 22:12:12 2016 1.10 MB 242 MB

Man kan leta i en äldre säkerhetskopia genom att t.ex. köra kommandot rdiff-backup -r 2016-01-26 /data/backups/data ~/restore-2016-01-26.

Efter att kommandot körts kommer användarens hemkatalog att innehålla en mapp med namnet restore-2016-01-26 som innehåller en kopia av /data från dagen ifråga. Man kan sedan undersöka innehållet i mappen och alla eller vissa filer kan återställas.

Att återställa en säkerhetskopia

Om du kört ovanstående kommando och säkerhetskopian från dagen ifråga finns i mappen ~/restore-2016-01-26 kan du sedan återställa önskade filer t.ex. med hjälp av kommandot cp. För att återställa mappen /data/wordpress från säkerhetskopian kör du följande kommandon:

rm -r /data/wordpress
cp -ra ~/restore-2016-01-26/data/wordpress /data/wordpress

I detta exempel kan säkerhetskopian av databasen kan läsas in genom att man kör kommandot wp db import ~/restore-2016-02-26/db/example.sql.

På samma sätt kör kommandot wp-backup motsvarigheten till ovanstående kommando, alltså kommandot wp db export. Vid återställning av en säkerhetskopia från databasen bör du tänka på att den skriver över den tidigare databasen. Det är till exempel farligt att återställa databasen för en webbutik eftersom information om beställningar som gjorts efter säkerhetskopieringen skedde kommer att raderas.

Databaskopian /data/db/example.sql innehåller hela databasen, inklusive alla strukturerna för alla tabeller och alla databasrader. Varje databasrad ligger på en egen rad, vilket gör det smidigare att jämföra dataskopiorna t.ex. med hjälp av kommandot diff eller grafiskt med verktyget meld.

Med hjälp av en säkerhetskopia kan en webbplats återskapas inte bara hos Seravo, utan var som helst i övrigt. Säkerhetskopians filformat är öppet och är inte på något sätt beroende av tjänsteleverantören. Om du vill ha extra hög säkerhet för din webbplats rekommenderar vi att du regelbundet kopierar mappen /data till någon annan dator. Mappen innehåller alla filer och databasen från när den senaste säkerhetskopieringen skedde så med detta kan WordPress-webbplatsen återskapas på valfri server.

Har du redan glömt kommandona? Låt våra experter hjälpa dig.

Alla paket för WordPress-webbhotell och -kontinuitet från Seravo inkluderar kundsupport från WordPress-experter som mer än gärna hjälper dig även med säkerhetskopiering! Studera våra tjänstepaket och beställ våra tjänster nu för att göra din WordPress-webbplats snabbare och säkrare med Seravo.

PS. När säkerhetskopierade du senast din egen dator eller arbetsstation?