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:

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

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.

Dejar un comentario