Captura de pantalla 2016-06-22 15.25.43

Programar BACKUPS de la base de datos MySQL de WordPress con CRONJOBS

Actualización de la entrada anterior (Programar copias de seguridad con CronJobs en cPanel). Este código toma automáticamente los datos del archivo de configuración de WordPress para crear los backups.

#!/usr/bin/php
<?php
$ruta = trim ( shell_exec('echo $HOME'), " \t\n\r\0\x0B");
include($ruta.'/public_html/wp-config.php');
$command = 'mysqldump -u'.DB_USER.' -p'.DB_PASSWORD.' '.DB_NAME.' | gzip > '.$ruta.'/backups/backup_$(date +\%Y-\%m-\%d_\%H:\%Mh)_basededatos_'.DB_NAME.'.sql.gz';
shell_exec($command);
?>

PASOS A SEGUIR PARA CONFIGURAR LOS BACKUPS

Por tanto, los pasos a seguir son:

  1. Crear en el directorio raíz el nuevo directorio “backups
  2. Crear dentro de este nuevo directorio otro llamado “scripts” (para tenerlo todo ordenado)
  3. Crear dentro de “scripts” el fichero “backup.php” (llámalo como quieras…)
  4. Pegar el código arriba expuesto, tal cual.
  5. Dar permisos de ejecución (744 está bien)
  6. Crear el cronjob para que ejecute el archivo recién creado (home/user/backups/scripts/backup.php)
Backups con CRONJOB para archivos ejecutables
Backups con CRONJOB para archivos ejecutables

Nota: recuerda que “user” es el usuario del CPanel. Personaliza el tuyo a la hora de programarlo sino no funcionará…

Explicación del código:

#!/usr/bin/php

Indica al sistema que es un archivo php ejecutable por consola y que el ejecutable de php está en dicha ruta (verifica la de tu servidor)

$ruta = trim ( shell_exec('echo $HOME'), " \t\n\r\0\x0B");

Crea una variable donde se almacena la ruta del directorio HOME de tu usuario en el sistema, sin espacios, saltos de línea, etc…

include($ruta.'/public_html/wp-config.php');

Recuperamos el archivo de configuración de wordpress. Normalmente se encuentra en el directorio raíz (public_html). Si en tu caso es diferente, modifícalo. En dicho archivo están guardados los datos de configuración de la base de datos.

$command = 'mysqldump -u'.DB_USER.' -p'.DB_PASSWORD.' '.DB_NAME.' | gzip > '.$ruta.'/backups/backup_$(date +\%Y-\%m-\%d_\%H:\%Mh)_basededatos_'.DB_NAME.'.sql.gz';

Creamos una variable “command” donde almacenaremos el comando que vamos a ejecutar desde la línea de comandos. Aquí es donde se usarán las variables y constantes que hemos obtenido previamente.

shell_exec($command);

Por último, ejecutamos el comando.

 

Deja un comentario

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