Siirry sisältöön

WordPress | Edistyneen varmuuskopion ottaminen ja palauttaminen

WordPressin varmuuskopio koostuu kahdesta asiasta: sivustosi tiedostoista (kuvat, teemat, lisäosat) ja tietokannasta (tekstit, asetukset). Molemmat tarvitaan sivuston palauttamiseen ja siten molemmat täytyy myös varmuuskopioida.

Tämä ohje kuvaa edistyneille käyttäjille tarkoitettua menetelmää, jossa varmuuskopio otetaan suoraan komentoriviltä. Se edellyttää myös webhotellia, joka tarjoaa SSH-pääsyn.

Helpompi ja useimmille käyttäjille sopivampi vaihtoehto on varmuuskopioida WordPress käyttäen jotain yhtä monista varmuuskopiointiin soveltuvista lisäosista. Eräs suositeltava lisäosa on helppokäyttöinen All-in-One WP Migration and Backup ja se on yleensä riittävä vaihtoehto.

Varmuuskopion ottaminen

Vaihe 1: Avaa komentorivi

Komentorivi on ohjelma, jonka avulla voit käskyttää joko paikallista tietokonettasi tai palvelinta kirjoittamalla tekstikomentoja. Komentorivin käyttö vaatii hieman teknistä osaamista ja tarkka käyttötapa riippuu käyttöjärjestelmästäsi.

  • Windows: Avaa Komentokehote tai PowerShell (löytyy valmiiksi Windows 10:stä ja uudemmista). Vaihtoehtoisesti voit käyttää PuTTY-sovellusta tämän ohjeen mukaisesti: Yhdistäminen webhotelliin SSH-yhteydellä
  • Mac ja Linux: Avaa Pääte (tai englanniksi Terminal)

Vaihe 2: Kirjaudu palvelimelle

Kirjoita komentoriville SSH-komento yhteystietoinesi. Komento on muotoa ssh <käyttäjänimi>@<palvelin>, esimerkiksi ssh u999999@sfp1/2/3/X.shellit.org. Löydät tarvitsemasi käyttäjätunnuksen sekä palvelinosoitteen hallintapaneelista. Mikäli käytät PuTTY:a, seuraa edellä mainittua ohjetta.

Vaihe 3: Luo var­muus­ko­pioin­tisk­rip­ti

Luo backup.sh niminen tiedosto ja kopioi siihen ohjeen lopusta löytyvä varmuuskopiointiskripti. Voit luoda tiedoston esimerkiksi nano-tekstieditorilla komentamalla nano backup.sh. Liitä sitten skriptin sisältö. Tallenna skripti painamalla ctrl + X ja seuraamalla ohjeita.

Vaihe 4: Aja tallentamasi skripti webhotellin juuressa komennolla:

sh backup.sh public_html

Skripti luo kotihakemistoon hakemiston ”backups” (jos sitä ei jo ole) ja laittaa sinne .zip-tiedoston, joka sisältää tiedostot, sekä tietokannan hakemistosta, joka on määritetty ajetussa komennossa. Tässä esimerkissä oletettiin, että sivustosi sijaitsee kansiossa ”public_html”. Mikäli kansio on jokin muu, korvaa se em. komentoon. Varmuuskopio tallennetaan nimelläe ”hakemisto_30.11.2023_130250.zip” eli esim. ”public_html_30.11.2023_130250.zip”

Varmuuskopion palautus

Vaihe 1: Siirry ”backups”-hakemistoon

cd ~/backups

cd tarkoittaa ”change directory” eli vaihda kansiota. ~/backups tarkoittaa backups-kansiota kotihakemistossasi.

Vaihe 2: Pura varmuuskopiopaketti

unzip public_html_30.11.2023_130250.zip

(korvaa tiedoston nimi omalla varmuuskopiopaketin nimellä)

Varmuuskopiopaketin purkamisen jälkeen backups-hakemistossa on public_html -kansio (tai muu kansio, jos sivustosi ei sijaitse public_html-kansiossa) ja tietokanta erikseen esim. 30.11.2023_130249.sql nimisenä.

Vaihe 3: Siirrä sivuston tiedostot

Siirrä ”public_html”-hakemisto (tai jokin muu kansio, jos sivustosi kansio ei ollut public_html) haluamaasi paikkaan (yleensä kotihakemistoon) tällä komennolla:

mv ~/backups/public_html ~/public_html

mv tarkoittaa ”move” eli siirrä tiedosto. Tämä siirtää public_html-kansion takaisin paikalleen.

Vaihe 4: Palauta tietokanta

Tämän jälkeen tuo tietokanta varmuuskopiosta ajamalla seuraavat komennot tässä järjestyksessä:

Siirry ensin public_html-kansioon komennolla cd ~/public_html

Tyhjennä tietokanta:

wp db reset

Tämä pyytää vielä vahvistuksen

Are you sure you want to reset the 'u999999C2' database? [y/n] y

ja antaa onnistuessa ilmoituksen

Success: Database reset.

Tuo tietokanta varmuuskopiosta:

wp db import ~/backups/30.11.2023_130249.sql

Tämä antaa myös onnistuessa ilmoituksen

Success: Imported from '/home/u12345/backups/30.11.2023_130249.sql'.

Tämän jälkeen kannattaa tarkistaa sivuston toimivuus.

Var­muus­ko­pioin­tisk­rip­ti (backup.sh)

#!/bin/bash
# Check if a folder name is provided
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <wordpress_folder>"
exit 1
fi

# Define the WordPress folder and backup folder
wordpress_folder=$1
backup_folder="$HOME/backups"

# Create backup folder if it does not exist
if [ ! -d "$backup_folder" ]; then
echo "Creating backup folder at $backup_folder"
mkdir -p "$backup_folder"
fi

# Export the WordPress database
echo "Exporting WordPress database..."
dbfilepath="$(date +%d.%m.%Y_%H%M%S).sql"
wp db export "$dbfilepath" --path="$wordpress_folder"

# Check if the database export was successful
if [ ! -f "$dbfilepath" ]; then
echo "Database export failed. Exiting."
exit 1
fi

# Create a zip archive of the WordPress folder and the database dump
backup_file="$backup_folder/$(basename "$wordpress_folder")_$(date +%d.%m.%Y_%H%M%S).zip"

echo "Backing up $wordpress_folder and database to $backup_file"
zip -r "$backup_file" "$wordpress_folder" "$dbfilepath"

rm -f "$dbfilepath"
echo "Removed temporary database export $dbfilepath"
echo "Backup completed successfully, .zip -file saved as $backup_file"

Oliko tämä artikkeli hyödyllinen?