|
Server : Apache System : Linux vps-1386233.fundacionavanta.org 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64 User : grupobalcacom ( 1010) PHP Version : 7.4.33 Disable Function : NONE Directory : /home/grupobalcacom/ |
Upload File : |
#!/bin/bash
set -e
if [ -z "$1" ]; then
echo "Uso: $0 /ruta/a/wordpress"
exit 1
fi
WP_PATH="$1"
if [ ! -f "$WP_PATH/wp-config.php" ]; then
echo "No se encontró wp-config.php en $WP_PATH. ¿Es una instalación válida de WordPress?"
exit 1
fi
WP_PATH=$(realpath "$WP_PATH")
BACKUP_DIR="$HOME/backups_wp"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_PATH="$BACKUP_DIR/$(basename "$WP_PATH")-$TIMESTAMP"
mkdir -p "$BACKUP_DIR"
echo "📦 Creando respaldo en: $BACKUP_PATH"
rsync -a "$WP_PATH/" "$BACKUP_PATH/"
cd "$WP_PATH"
VERSION=$(grep "\$wp_version =" wp-includes/version.php | cut -d "'" -f2 2>/dev/null)
if [ -z "$VERSION" ]; then
echo "⚠️ No se pudo determinar automáticamente la versión de WordPress."
read -p "🔢 Por favor ingresa manualmente la versión de WordPress (ej: 6.8.2): " VERSION
if [ -z "$VERSION" ]; then
echo "❌ No se proporcionó versión. Abortando."
exit 1
fi
fi
echo "🌐 Usando WordPress versión: $VERSION"
TMP_DIR=$(mktemp -d)
echo "⬇️ Descargando WordPress $VERSION..."
curl -s -o "$TMP_DIR/wordpress.tar.gz" "https://wordpress.org/wordpress-$VERSION.tar.gz"
echo "📂 Extrayendo..."
tar -xzf "$TMP_DIR/wordpress.tar.gz" -C "$TMP_DIR"
# Verificamos que exista wp-admin dentro de la carpeta extraída
if [ ! -d "$TMP_DIR/wordpress/wp-admin" ]; then
echo "❌ Error: No se encontró wp-admin en el paquete descargado. Algo falló."
exit 1
fi
/bin/cp wp-config.php "$TMP_DIR/wp-config.php"
echo "🔄 Reemplazando archivos del core..."
rm -rf wp-admin wp-includes
/bin/cp -R "$TMP_DIR/wordpress/wp-admin" "$WP_PATH"
/bin/cp -R "$TMP_DIR/wordpress/wp-includes" "$WP_PATH"
for FILE in $(ls "$TMP_DIR/wordpress" | grep -Ev 'wp-content|wp-config.php'); do
/bin/cp -f "$TMP_DIR/wordpress/$FILE" "$WP_PATH/"
done
/bin/mv "$TMP_DIR/wp-config.php" "$WP_PATH/wp-config.php"
echo "🔐 Corrigiendo permisos..."
find "$WP_PATH" -type d -exec chmod 755 {} \;
find "$WP_PATH" -type f -exec chmod 644 {} \;
chmod 600 "$WP_PATH/wp-config.php"
echo "🧹 Limpiando archivos temporales..."
rm -rf "$TMP_DIR"
echo "✅ Proceso completado exitosamente."
echo "📁 Respaldo guardado en: $BACKUP_PATH"