Julkaistu
Päivitetty

WP-palvelu.fi:n yksi vanhimpia ominaisuuksia on, että kaikkien asiakkaiden WordPress-sivusto varmuuskopioidaan automaattisesti kerran vuorokaudessa. Varmuuskopio jokaiselta päivältä on tallessa 30 päivän ajalta. Varmuuskopiomme ovat monesti pelastaneet asiakkaitamme suurelta haitalta ja vaivalta.
Jaamme tässä artikkelissa parhaat käytännöt varmuuskopiointiin ja palauttamiseen liittyen.

Varmuuskopion ajaminen komentoriviltä

Kaikki WP-palvelu.fi:n automaattiset varmuuskopiot tapahtuvat palvelimen varusohjelmilla. Näin sekä varmuuskopion ottaminen ja ennen kaikkea palauttaminen on täysin riippumatonta siitä, toimiiko WordPress tai muu PHP-koodi. Lisäksi tämä varmuuskopiointimenetelmä antaa lisäturvaa, koska mahdollinen tietoturvamurto WordPress-sivustolle ei automaattisesti tarkoita pääsyä varmuuskopioihin ja mahdollisuutta tuhota niitä.
Varmuuskopiot sisältävät sekä tietokannan että kaikki tiedostot. Automatiikasta riippumatta varmuuskopion voi ajaa myös käsin, suorittamalla SSH-yhteyden yli komentoriviltä:
$ wp-backup
Tämä komento tekee tuoreen tietokantatulosteen tiedostoon /data/db/esimerkki.sql ja sen jälkeen kopioi kaikki tiedostot (mukana lukien tuoreen tietokantatiedoston) kansioon/data/backups.

Tiedostojen jättäminen varmuuskopion ulkopuolelle

Varmuuskopiokansio itsessään tietysti jää varmuuskopion ulkopuolelle. Jos käyttäjä haluaa, että myös jotain muuta jätetään varmuuskopioimatta, voi sen tiedoston tai hakemistopolun lisätä tiedostoon /data/backups/exclude.filelist.

Varmuuskopioitujen tiedostojen selaaminen

Varmuuskopiointi käyttää rdiff-backup -komentoriviohjelmaa. Kaikki tiedostot sellaisina kuin ne viimeisimmän varmuuskopioinnin ajon aikaan olivat, on selattavissa polussa /data/backups/data. Vanhempien varmuuskopioiden datat on säilötty hakemiston /data/backups/data/rdiff-backup-data/ alle.
Kaikki varmuuskopiot voi listata komennolla:

$ 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

Vaihtoehtoisesti voi ajaa komennon siten, että näkee varmuuskopion kokonaislevytilan sekä kussakin varmuuskopiossa havaittujen muutosten tiedostokoon:

$ 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

Vanhempaa varmuuskopiota pääsee selaamaan ajamalla esimerkiksi rdiff-backup -r 2016-01-26 /data/backups/data ~/palautus-2016-01-26
Komennon jälkeen käyttäjän kotihakemistossa on kansio nimeltä palautus-2016-01-26 joka sisältää kansion /data kopion kyseiseltä päivämäärältä. Kansion sisältöä voi sitten rauhassa tutkia ja palauttaa sieltä kaikki tai vain osan tiedostoista.

Varmuuskopion palauttaminen

Jos ajoit yllä olevan komennon ja varmuuskopio tietyltä päivältä löytyy kansiosta ~/palautus-2016-01-26, voit sitten palauttaa sieltä haluamasi tiedostot esim. cp-komennolla. Kansion /data/wordpress palauttamiseksi varmuuskopioista pitää ajaa:

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

Tietokantaan varmuuskopion voisi palauttaa tässä esimerkissä ajamalla wp db import ~/palautus-2016-02-26/db/esimerkki.sql.
Ohjelma wp-backup ajaa vastaavasti yllä olevan komennon vastaparia, eli wp db export -komentoa. Tietokannan varmuuskopiota palautettaessa on pidettävä mielessä, että se ylikirjoittaa vanhan tietokannan. Esimerkiksi verkkokaupassa tietokannan palauttaminen on vaarallista, koska varmuuskopion jälkeen tehtyjen tilausten tiedot katoavat tietokannasta.
Tietokantadumpissa /data/db/esimerkki.sql on koko tietokanta, sisältäen kaikki tietokantataulujen määrittelyt ja kaikki tietokantarivit. Jokainen tietokantarivi on omalla rivillään, joten tietokantadumppeja on kätevämpi verrata keskenään esim diff -komentoa käyttäen, tai graafisesti meld -työkalulla.
Varmuuskopion avulla sivuston voi palauttaa paitsi WP-palvelussa, myös missä tahansa muualla. Varmuuskopion tiedostomuoto on avoin eikä millään tavalla toimittajariippuvainen. Jos haluaa sivustolleen lisävarmuutta, kannattaa kopioida /data -kansio erilliselle tietokoneelle säännöllisin väliajoin. Kansiosta löytyvät kaikki tiedostot ja tietokanta viimeisimmän varmuuskopion ottamishetkeltä, joten sitä käyttäen voi WordPress-sivuston pystyttää uudestaan mille tahansa palvelimelle.

Menivätkö komennot jo sekaisin? Asiantuntija-apua tarjolla.

Tämän melko teknisen artikkelin avulla on kuka tahansa vapaa hyödyntämään varmuuskopioiden tarjoamia mahdollisuuksia. WP-palvelu.fi:n asiantuntijat ovat toki myös aina käytettävissä varmuuskopio- ja palautusasioissa tuntityöpohjalta asiakkaiden niin toivoessa. Ja kun sivusto on WP-palvelun ylläpidossa, voi päivittäiset varmuuskopiohuolet jättää meidän harteillemme.
PS. Koska viimeksi varmuuskopioit oman tietokoneesi tai työasemasi?