Automatització de la restauració de WordPress
Per automatitzar un procés en Linux, utilitzem un script. Per a crear un script, primer hem de crear un pseudocodi, en el qual, explica els passos que volem fer.
Pseudocodi
Accedim al directori on es troben els archius.
Descomprimeix l'arxiu "tar.gz" de la MV
Crea el directori "/var/www/html/$NOM" a la MV
Copia el contingut del directori "20250317-$NOM" dins del directori que acabes de crear
Canvia el propietari del directori que has creat i tot el seu contingut amb l'usuari "www-data"
Copia el fitxer "$NOM.conf" dins del directori /etc/nginx/sites-available/" amb el mateix nom
Crea un enllaç simbòlic del fitxer que acabes de copiar a "/etc/nginx/sites-enabled/" amb el mateix nom
Executa les ordres del fitxer "$NOM.sql" dins del servidor de BBDDk
Restaura el fitxer "20250317-$NOM.sql" dins de la BBDD que has creat
Reinicia el servidor web "nginx"
Crea en el fitxer "/etc/hosts" del teu portàtil una entrada que resolgui "$NOM.inscastellbisbal.net" per la IP de la MV
Quan ja tenim finalitzat el pseudocodi, creem el script com es mostra avall. Aquest script, automatitza la creació del wordpress. Quan executem el script en un entorn Linux amb bash, escriurem el nom del script, la data i el nom.
sudo ./script data nom
Codi Final
#!/bin/bash
TEMPS=$1
NOMUSUARI=$2
FITXER1=$TEMPS-$NOMUSUARI.tar.gz
FITXER2=$TEMPS-$NOMUSUARI
DIRECTORI=/var/www/html/$NOMUSUARI
DIRECTORI2=/home/vagrant
# Comprobar existencia fitxer i extraccio dels arxius
if [ -e $FITXER1 ]
then
tar xzf $FITXER1
echo "Extracció del fitxer $FITXER1 finalitzada"
else
echo "Extracció del fitxer $FITXER1 interrompuda"
fi
# Creació directori dins del servidor web
mkdir $DIRECTORI
# Copiem contingut del meu wordpress
cp -r $DIRECTORI2/$TEMPS-$NOMUSUARI/* $DIRECTORI
# Correccion chatgpt "cp -r ${FITXER1%.tar.gz} $DIRECTORI"
# Canviem el propietari de la carpeta
chown -R www-data $DIRECTORI
# Copiem al directori del servei nginx arxiu de configuracio del nostre usuari WordPress.
cp $DIRECORI2/nginx/$NOMUSUARI.conf /etc/nginx/sites-available/
# Creem enllac
ln -s /etc/nginx/sites-available/$NOMUSUARI.conf /etc/nginx/sites-enabled/
# Copiem el contingut de la base de dades del nostre WordPress al servidor de MySQL.
mysql -u root < $DIRECTORI2/mariadb/$NOMUSUARI.sql
mysql -u root $NOMUSUARI < $DIRECTORI2/$TEMPS-$NOMUSUARI.sql
# Reinciem el servei nginx
systemctl restart nginx.service