| Linux webm007.cluster106.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64 Path : /home/eglisebaa/ |
| Current File : /home/eglisebaa/verification-mises-a-jour.sh |
#!/bin/bash
#
# Script de vérification des mises à jour WordPress, plugins et thèmes
#
set -e
# Couleurs
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m'
WP_ROOT="/home/eglisebaa/www"
REPORT_FILE="$WP_ROOT/rapport-mises-a-jour-$(date +%Y%m%d-%H%M%S).txt"
cd "$WP_ROOT"
log() {
echo -e "$1" | tee -a "$REPORT_FILE"
}
log_section() {
echo "" | tee -a "$REPORT_FILE"
log "=========================================="
log "$1"
log "=========================================="
log ""
}
log_info() {
log "${BLUE}ℹ️ $1${NC}"
}
log_warning() {
log "${YELLOW}⚠️ $1${NC}"
}
log_success() {
log "${GREEN}✅ $1${NC}"
}
echo ""
echo "=========================================="
echo "🔍 VÉRIFICATION DES MISES À JOUR"
echo "=========================================="
echo ""
log_section "VÉRIFICATION DES MISES À JOUR - $(date)"
# 1. Version WordPress
log_section "1. Version WordPress"
if [ -f "wp-includes/version.php" ]; then
WP_VERSION=$(grep "\$wp_version" wp-includes/version.php | head -1 | sed "s/.*= '\(.*\)';/\1/" | tr -d ' ')
log_info "Version WordPress actuelle: ${CYAN}$WP_VERSION${NC}"
# Vérifier si c'est une version récente
MAJOR_VERSION=$(echo "$WP_VERSION" | cut -d. -f1)
MINOR_VERSION=$(echo "$WP_VERSION" | cut -d. -f2)
if [ "$MAJOR_VERSION" -lt 6 ] || ([ "$MAJOR_VERSION" -eq 6 ] && [ "$MINOR_VERSION" -lt 4 ]); then
log_warning "WordPress $WP_VERSION - Mise à jour recommandée (dernière version: 6.4+)"
else
log_success "WordPress $WP_VERSION - Version récente"
fi
else
log_warning "Impossible de déterminer la version WordPress"
fi
# 2. Plugins installés
log_section "2. Plugins Installés"
PLUGINS_COUNT=0
PLUGINS_LIST=""
for plugin_dir in wp-content/plugins/*/; do
if [ -d "$plugin_dir" ]; then
plugin_name=$(basename "$plugin_dir")
# Ignorer les fichiers
if [ "$plugin_name" = "index.php" ]; then
continue
fi
PLUGINS_COUNT=$((PLUGINS_COUNT + 1))
# Trouver le fichier principal du plugin
plugin_file=$(find "$plugin_dir" -maxdepth 1 -name "*.php" -type f | head -1)
if [ -f "$plugin_file" ]; then
# Extraire la version
version=$(grep -i "Version:" "$plugin_file" 2>/dev/null | head -1 | sed 's/.*[Vv]ersion[: ]*//' | sed 's/[^0-9.]//g' | head -c 20 | tr -d ' ')
if [ -z "$version" ]; then
version="N/A"
fi
# Extraire le nom du plugin depuis le header
plugin_display_name=$(grep -i "Plugin Name:" "$plugin_file" 2>/dev/null | head -1 | sed 's/.*Plugin Name[: ]*//' | sed 's/^[ \t]*//;s/[ \t]*$//' | head -c 50)
if [ -z "$plugin_display_name" ]; then
plugin_display_name="$plugin_name"
fi
log_info "$plugin_display_name (${CYAN}$plugin_name${NC}) - Version: ${YELLOW}$version${NC}"
PLUGINS_LIST="${PLUGINS_LIST}${plugin_name}|${version}\n"
fi
fi
done
log_info "Total plugins: $PLUGINS_COUNT"
# 3. Thèmes installés
log_section "3. Thèmes Installés"
THEMES_COUNT=0
for theme_dir in wp-content/themes/*/; do
if [ -d "$theme_dir" ]; then
theme_name=$(basename "$theme_dir")
# Ignorer les fichiers
if [ "$theme_name" = "index.php" ]; then
continue
fi
THEMES_COUNT=$((THEMES_COUNT + 1))
# Trouver le fichier style.css
if [ -f "${theme_dir}style.css" ]; then
# Extraire la version
version=$(grep -i "Version:" "${theme_dir}style.css" 2>/dev/null | head -1 | sed 's/.*[Vv]ersion[: ]*//' | sed 's/[^0-9.]//g' | head -c 20 | tr -d ' ')
if [ -z "$version" ]; then
version="N/A"
fi
# Extraire le nom du thème
theme_display_name=$(grep -i "Theme Name:" "${theme_dir}style.css" 2>/dev/null | head -1 | sed 's/.*Theme Name[: ]*//' | sed 's/^[ \t]*//;s/[ \t]*$//' | head -c 50)
if [ -z "$theme_display_name" ]; then
theme_display_name="$theme_name"
fi
log_info "$theme_display_name (${CYAN}$theme_name${NC}) - Version: ${YELLOW}$version${NC}"
fi
fi
done
log_info "Total thèmes: $THEMES_COUNT"
# 4. Résumé et recommandations
log_section "RÉSUMÉ ET RECOMMANDATIONS"
log "WordPress: $WP_VERSION"
log "Plugins: $PLUGINS_COUNT"
log "Thèmes: $THEMES_COUNT"
log ""
log "${YELLOW}⚠️ IMPORTANT:${NC}"
log "1. Faire une sauvegarde complète avant toute mise à jour"
log "2. Mettre à jour WordPress en premier"
log "3. Mettre à jour les plugins un par un et tester"
log "4. Mettre à jour les thèmes en dernier"
log "5. Tester le site après chaque mise à jour"
log ""
log "Rapport sauvegardé dans: $REPORT_FILE"
echo ""
echo "=========================================="
echo "✅ VÉRIFICATION TERMINÉE"
echo "=========================================="
echo ""