Cómo hacer copias de seguridad de WordPress y subirlas a Dataprius a través de API

Shares

Describimos cómo realizar copias de seguridad periódicas de tu sitio de WordPress y subirlas a través de la API de Dataprius para tener respaldos aislados. Mantener copias de seguridad actualizadas es esencial para proteger tus webs y asegurar su continuidad.

Imagen de ordenador haciendo copia de seguridad de wordpress a la nube

Pasos para hacer copias automáticas de wordpress

Paso 1: Configurar la API de Dataprius v2

  1. Entra en Dataprius y obtén las credenciales necesarias para acceder a la API v2. En Inicio -> Configuración -> Api Keys. Esto incluye el API Key (ClientId) y el API Secret (SecretKey). Más información en (https://dataprius.com/api-desarrolladores.html)
Api keys 2.0 Dataprius.
  1. Asegúrate de tener cURL instalado en tu sistema. Si no lo tienes, puedes instalarlo siguiendo las instrucciones de la documentación oficial de cURL.

Paso 2: Crear un script de copia de seguridad

  1. Abre un editor de texto en tu sistema y crea un nuevo archivo. Guarda el archivo con el nombre que desees y con la extensión .sh (por ejemplo, backup.sh).
  2. Agrega el siguiente código al archivo:
#!/bin/bash

# Variables de configuración
DB_NAME="nombre_de_la_base_de_datos"
DB_USER="nombre_de_usuario_de_la_base_de_datos"
DB_PASSWORD="contraseña_de_la_base_de_datos"
WP_PATH="/ruta/al/directorio/de/WordPress"
API_KEY="ClientId"
API_SECRET="SecretKey"

# Ruta y nombre del archivo de respaldo
BACKUP_DIR="/ruta/del/directorio/de/respaldo"
BACKUP_FILE="backup_$(date +"%Y%m%d%H%M%S").zip"

# Obtener el id de carpeta donde se desean subir las copias.  (Ver https://dataprius.stoplight.io/docs/dataprius-api-rest-v-2/branches/main/a88b28c1f997e-list-folders). Ejemplo:
ID_FOLDER_BACKUP="X3lXnB"

# Crear respaldo de la base de datos
# ------------------------------------------------------------------
mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_DIR/database.sql

# Crear respaldo de los archivos
zip -r $BACKUP_DIR/$BACKUP_FILE $WP_PATH

# Usar la API de Dataprius.
# ------------------------------------------------------------------
# Codificar API_KEY y API_SECRET en Base64
ENCODED_AUTH=$(printf "%s:%s" "$API_KEY" "$API_SECRET" | base64 -w 0)

# Obtener token de acceso OAuth2
TOKEN_OAUTH=$(curl --request GET \
  --url https://api.v2.dataprius.com/oauth/token \
  --header "Accept: application/json" \
  --header "Authorization: Basic $ENCODED_AUTH" | jq -r '.access_token')

# Subir el archivo de respaldo a través de la API de Dataprius
RESPONSE=$(curl --request POST \
  --url https://api.v2.dataprius.com/files/upload \
  --header "Accept: application/json, application/xml" \
  --header "Authorization: Bearer $TOKEN_OAUTH" \
  --header "Content-Type: multipart/form-data" \
  --form IDFolder=$ID_FOLDER_BACKUP \
  --form file="@$BACKUP_DIR/$BACKUP_FILE" \
  --write-out "%{http_code}" -o /dev/null)

# Verificar la respuesta de la cabecera de la API. Si es un 201 se ha subido correctamente.
if [ "$RESPONSE" = "201" ]; then
  echo "Backup wordpress subido exitosamente a Dataprius"
else
  echo "Error al subir el archivo de backup wordpress a Dataprius: $RESPONSE"
fi
  1. Asegúrate de reemplazar nombre_de_la_base_de_datos, nombre_de_usuario_de_la_base_de_datos, contraseña_de_la_base_de_datos y /ruta/al/directorio/de/WordPress con los valores correspondientes a tu configuración.
  2. Guarda el archivo y ciérralo.

Paso 3: Programar un cron job

  1. Abre una terminal o consola en tu sistema.
  2. Ejecuta el siguiente comando para editar el archivo de tareas cron:
crontab -e
  1. Añade la siguiente línea para programar la ejecución del script de copia de seguridad:
0 0 * * * /ruta/al/script/backup.sh
  1. Asegúrate de reemplazar /ruta/al/script/backup.sh con la ubicación real del archivo de script de copia de seguridad que creaste anteriormente.
  2. Guarda y cierra el archivo.

A partir de ahora, se ejecutará automáticamente un respaldo diario de tu base de datos y archivos de WordPress, y se subirá a través de la API de Dataprius.

Shares

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *