Varmuuskopion ottaminen
- Avaa komentorivi: Kirjaudu palvelimelle, jossa WordPress-sivustosi sijaitsee.
- Luo backup.sh niminen tiedosto ja kopioi siihen ohjeen lopusta löytyvä scripti.
- Aja luomasi scripti webhotellin juuressa komennolla:
sh backup.sh public_html
Scripti 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ä ”public_html”. Varmuuskopio tallennetaan nimellä ”hakemisto_30.11.2023_130250.zip” eli esim. ”public_html_30.11.2023_130250.zip”
Varmuuskopion palautus
- Siirry ”backups”-hakemistoon komennolla
cd ~/backups
- Pura varmuuskopiopaketti komennolla
unzip public_html_30.11.2023_130250.zip
(korvaa tiedoston nimi omalla varmuuskopiopaketin nimellä) - Varmuuskopiopaketin purkamisen jälkeen backups-hakemistossa on public_html -kansio ja tietokanta erikseen esim. 30.11.2023_130249.sql nimisenä.
- Siirrä ”public_html”-hakemisto haluamaasi paikkaan (yleensä kotihakemistoon) tällä komennolla:
mv ~/backups/public_html ~/public_html
- Tämän jälkeen tuo tietokanta varmuuskopiosta ajamalla seuraavat komennot tässä järjestyksessä:
Tyhjennä tietokanta:wp db reset
Tämä pyytää vielä vahvistuksenAre you sure you want to reset the 'u12345C2' database? [y/n] y
ja antaa onnistuessa ilmoituksenSuccess: Database reset.
Tuo tietokanta varmuuskopiosta:wp db import ~/backups/30.11.2023_130249.sql
Tämä antaa myös onnistuessa ilmoituksenSuccess: Imported from '/home/u12345/backups/30.11.2023_130249.sql'.
- Tämän jälkeen kannattaa tarkistaa sivuston toimivuus.
backup.sh scripti
#!/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"
#tar -czf "$backup_file" -C "$wordpress_folder" . -C "$db_export_temp" "wp_db.sql" zip -r "$backup_file" "$wordpress_folder" "$dbfilepath"
rm -rf "$dbfilepath"
echo "Removed temporary database export $dbfilepath"
echo "Backup completed successfully, .zip -file saved as $backup_file"