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.
Pasos para hacer copias automáticas de wordpress
Paso 1: Configurar la API de Dataprius v2
- 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 elAPI Secret
(SecretKey). Más información en (https://dataprius.com/api-desarrolladores.html)
- 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
- 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
). - 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
- 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. - Guarda el archivo y ciérralo.
Paso 3: Programar un cron job
- Abre una terminal o consola en tu sistema.
- Ejecuta el siguiente comando para editar el archivo de tareas cron:
crontab -e
- Añade la siguiente línea para programar la ejecución del script de copia de seguridad:
0 0 * * * /ruta/al/script/backup.sh
- 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. - 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.