Automatització de la restauració de WordPress

El que farem perquè fer un back up del nostre WP en una màquina virtual sigui més fàcil i ràpid farem un script el qual executi automàticament les comandés una darrera de l'altre, això farà que el procés sigui quasi automàtic, i molt més ràpid.

V1 Pseudocodi

# Psuedocodi
 # v1
   # Revisar que existen los ficheros copiados en el directorio “/home/vagrant/”
   # Descomprime el archivo "20250402-agarcia" de la MV
   # Crea el directorio "/var/www/html/agarcia"
   # Copia el contenido del directorio "20250402-agarcia" dentro del directorio “/var/www/html/agarcia
   # Revisar si los archivos se han copiado bien dentro de la carpeta
   # Cambia el propietario del directorio que has creado y todo su contenido con el usuario "www-data"
   # Copia el archivo "$NOM.conf" dentro del directorio /etc/nginx/sites-available/" con el mismo nombre
   # Crea un enlace simbólico del archivo que acabas de copiar en "/etc/nginx/sites-enabled/" con el mismo nombre
   # Ejecuta los mandatos del archivo "$NOM.sql" dentro del servidor de BBDD
   # Restaurar el archivo "20250317-$NOM.sql" dentro de la BBDD que has creado
   # Reiniciar el servidor web "nginx"
   # Mirar el estado del servicio de nginx 

Codi final

#!/bin/bash

TIME=$1
USERNAME=$2
FILE1=$TIME-$USERNAME.tar.gz
DOCROOT=/var/www/html/$USERNAME
FILE2=$TIME-$USERNAME
DIRHOME=/home/vagrant

# 1. Comprovar que el fitxer existeix
if [ -e $FILE1 ]
then
    tar xzf $FILE1
    echo "S'ha descomprimit el fitxer $FILE1 amb exit"
else
    echo "El fitxer $FILE1 no existeix"
    exit 1
fi

# 2. Cramos, copiamos los datos del WP, y le damos permisos a esta carpeta
mkdir $DOCROOT
cp -r $DIRHOME/$FILE2/* $DOCROOT
chown -R www-data $DOCROOT

# 3. Copiamos el archivo de configuracion de Nginx, y creamos un enlace
cp $DIRHOME/nginx/$USERNAME.conf /etc/nginx/sites-available/
ln -s /etc/nginx/sites-available/$USERNAME.conf /etc/nginx/sites-enabled/

# 3. Creamos base de datos y la remplazamos con la que tenemos
mysql -u root < mariadb/$USERNAME.sql
mysql -u root $USERNAME < /home/vagrant/$TIME-$USERNAME.sql

# 4. Reiniciamos servicio Nginx
systemctl restart nginx.service

Leave a Comment