WordPress

Respaldar instalación de WordPress periódicamente en Google Drive

WordPress es un popular CMS que usan muchísimos sitios en internet, ya sea para sitios de noticias, blogs, tiendas, etcétera.

Este CMS se compone de archivos para funcionar, además de los archivos que el usuario sube, plugins, temas y finalmente una base de datos en donde están los artículos, páginas y configuraciones del sitio.

En este post voy a mostrarte cómo respaldar toda la instalación de WordPress junto con su base de datos en un archivo que será subido a Google Drive.

Como extra, te mostraré cómo hacer que estos respaldos sean automáticos usando cron.

Requisitos y recomendaciones

Para este post necesitamos las credenciales de acceso de MySQL de WordPress; pues vamos a exportar la base de datos.

También se necesita haber accedido a la cuenta de Google Drive desde Linux, por favor, sigue este sencillo tutorial.

Este post está basado en otros posts:

  1. Respaldar carpeta de Linux
  2. Hacer backup base de datos de MySQL en Linux
  3. Crear respaldo periódico de carpeta de Linux en Google Drive

Recomiendo leerlos, pues lo explicado ahí (en detalle) no será explicado aquí, aunque si no los lees no pasa nada.

Proceso de respaldo de WordPress

Vamos a crear un archivo .tar.gz con toda la instalación de WordPress. A ese archivo le vamos a agregar un export de la base de datos de MySQL.

Después vamos a subir ese respaldo a nuestra cuenta de Google Drive y una vez subido haremos que se elimine de nuestro sistema.

Finalmente vamos a hacer que el script se ejecute cada cierto tiempo con cron.

Hablar es de mal gusto, muéstrame el código

Veamos el script y abajo explico su funcionamiento. Es muy fácil de usar y modificar:

See the gist on github.

Comenzando con MySQL, debemos tener un archivo llamado my.cnf en la ruta que se indica. El mío luce así:

See the gist on github.

Antes de ejecutar el script recomiendo que pruebes iniciar sesión con las credenciales de MySQL que pusiste; o bueno, si tu instalación de WordPress funciona con esas credenciales puedes omitir este paso.

Recuerda poner correcta la ruta del ejecutable de la herramienta de Google Drive y haber puesto tus credenciales anteriormente.

También cambia el nombre de la base de datos de WordPress (pues el usuario, la contraseña y el host estarán en my.cnf)

Finalmente cambia la ruta absoluta de la instalación de WordPress, es decir, la dirección en donde está la carpeta de wp-content, el archivo wp-config.php, etcétera.

Cuando hayas configurado todo, dale permisos de ejecución al script:

chmod +x script.sh

Y después ejecútalo:

./script.sh

Es importante notar que dependiendo de tu servidor y cantidad de archivos, así como la conexión a internet, el proceso tardará un poco más o un poco menos.

Ejecutando el script

Aquí puedes ver una ejecución del script en mi computadora:

Respaldar instalación de WordPress con Base de datos y subirla a Google Drive

Como te lo dije, puedes modificar el archivo a tu gusto.

Agregar archivo a cron

Para que los respaldos sean automáticos hay que editar el crontab con nuestro editor favorito:

crontab -e

Después, agregar algo como lo siguiente:

0 7 * * 1,3,5 bash -c /home/parzibyte/scripts/respaldar_blog.sh

En este caso los respaldos se harán los lunes, miércoles y viernes a las 7 de la mañana; puedes modificar los períodos a tu gusto.

Cuando me pierdo, utilizo esta web para saber los tiempos de cron.

Bonus: enviar correo electrónico cuando se haga un respaldo

Si tenemos sendmail configurado en nuestro entorno, podemos enviar un correo electrónico con los mensajes.

Para ello hay que direccionar la salida y pasarla a través de una tubería hacia sendmail:

0 7 * * 1,3,5 bash -c /home/parzibyte/scripts/respaldar_blog.sh | grep /usr/sbin/sendmail tu_correo@dominio.com

En mi caso mi cron queda así:

Configurar cron para respaldos automáticos

Y al probarlo:

Correo electrónico de respaldo de WordPress

Así, cada vez que se haga un respaldo, un correo será enviado.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Enviar mensaje con bot de Telegram usando JavaScript (lado del cliente)

Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…

5 horas hace

PHP: incrustar imagen en base64

El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…

6 horas hace

Plugin ESC POS – Actualización 3.4.0: imprimir HTML

El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…

1 día hace

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

1 semana hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

1 semana hace

Imprimir PDF generado con HTML

Hoy vamos a ver programar la impresión de un PDF generado a partir de HTML…

1 semana hace

Esta web usa cookies.