Ordinateur et multi écrans qui affichent du code

Script de sauvegarde d’une plateforme wordpress en local

Dans mon article précédent, je vous avais donné une méthode sécurisée pour sauvegarder votre plateforme WordPress. Aujourd’hui je vous propose un script afin d’automatiser tout ça. Il est à lancer localement, c’est à dire que la plateforme doit être sur votre machine ou que le script doit être copié sur la machine qui la sert.

Une fois le fichier créé, n’oubliez pas de lui ajouter les droits d’exécutions

Le script bash complet

#!/bin/bash

# Demander à l'utilisateur d'entrer le chemin vers le répertoire WordPress
read -p "Entrez le chemin vers le répertoire WordPress : " WP_PATH

# Vérifier si le chemin existe
if [ ! -d "$WP_PATH" ]; then
    echo "Le chemin spécifié n'existe pas."
    exit 1
fi

# Chemin vers le fichier wp-config.php
WP_CONFIG_FILE="$WP_PATH/wp-config.php"

# Vérifier si wp-config.php existe
if [ ! -f "$WP_CONFIG_FILE" ]; then
    echo "Le fichier wp-config.php n'existe pas dans le répertoire spécifié."
    exit 1
fi

# Lire les informations de la base de données depuis wp-config.php
DB_NAME=$(grep "DB_NAME" $WP_CONFIG_FILE | cut -d \' -f 4)
DB_USER=$(grep "DB_USER" $WP_CONFIG_FILE | cut -d \' -f 4)
DB_PASSWORD=$(grep "DB_PASSWORD" $WP_CONFIG_FILE | cut -d \' -f 4)
DB_HOST=$(grep "DB_HOST" $WP_CONFIG_FILE | cut -d \' -f 4)

# Nom du fichier de sauvegarde
BACKUP_NAME="backup_wordpress_$(basename "$WP_PATH")_$(date +%Y%m%d_%H%M%S).tar.gz"

# Répertoire de sauvegarde
BACKUP_DIR="./sauvegardes"

# Créer le répertoire de sauvegarde s'il n'existe pas
mkdir -p "$BACKUP_DIR"

# Créer un dossier temporaire
TEMP_DIR=$(mktemp -d)

# Chemin vers les répertoires des thèmes, plugins et uploads
THEMES_DIR="$WP_PATH/wp-content/themes"
PLUGINS_DIR="$WP_PATH/wp-content/plugins"
UPLOADS_DIR="$WP_PATH/wp-content/uploads"

# Copier les dossiers des thèmes, plugins et uploads dans le répertoire temporaire
cp -r "$THEMES_DIR" "$TEMP_DIR"
cp -r "$PLUGINS_DIR" "$TEMP_DIR"
cp -r "$UPLOADS_DIR" "$TEMP_DIR"

# Créer un dump de la base de données dans le répertoire temporaire
mysqldump --opt -h "$DB_HOST" -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" > "$TEMP_DIR/db_backup_$(basename "$WP_PATH")_$(date +%Y%m%d_%H%M%S).sql"

# Compresser le contenu du répertoire temporaire
tar -czvf "$BACKUP_DIR/$BACKUP_NAME" -C "$TEMP_DIR" .

# Supprimer le dossier temporaire et son contenu
rm -rf "$TEMP_DIR"

echo "Sauvegarde terminée : $BACKUP_DIR/$BACKUP_NAME"Langage du code : Bash (bash)

Retour en haut