Mostrando entradas con la etiqueta mysql. Mostrar todas las entradas
Mostrando entradas con la etiqueta mysql. Mostrar todas las entradas

lunes, 26 de septiembre de 2011

Backup de mysql con php

Valencia, 26/09/2011 Gatsu

Hay algunos hostings que generan backups de ficheros y bases de datos de forma automática, otros no, como es mi caso, y aunque no me he puesto a buscar como hacer un backup de los archivos de mi hosting (no creo que sea complicado) si que he encontrado la manera de hacer copias de seguridad de mi base de datos mysql con un script de php. Este script lo he copiado de "foros del web" en donde explica bastante bien como generar el backup, y además descargarlo a tu escritorio o donde quieras, incluso puedes comprimirlo a bzip2 o gzip.

Este post no tendría ninguna utilidad si se quedase en ello, y yo he modificado el script (a parte de por un error que me daba) para que me haga la copia de seguridad dentro del hosting. ¿Para qué? Porque utilizar un cron job que, por ejemplo, se ejecute una vez cada semana y te guarde el archivo sql en una carpeta protegida del hosting lo veo una buena idea (de carpetas protegidas estoy mirándolo, he visto cosas por ahí pero aún no me he puesto con ello).

A partir del código de "foros del web" comentar la parte de "Envío" y sustituirla por:

$abrirArchivo = fopen("backupDB/$nombre", "w");
fwrite($abrirArchivo, $dump);
fclose($abrirArchivo);
Recomiendo añadir a la variable nombre la fecha y hora del servidor para que no machaque el mismo archivo una y otra vez:
$nombre = date("d-m-Y")."-".date("h:m:s A")."-dump.sql"; 
Y por último, sustituir los comentarios en "#" por "--" y los EOT por comillas dobles, así me he generado una copia de seguridad y la he restaurado en la base de datos, con resultados favorables.

ACTUALIZACIÓN:

Comprobado, proteger una carpeta con contraseña y hacer que algún fragmento de código quiera recurrir a dicha carpeta, no podrá.

martes, 12 de julio de 2011

Aprendiendo a utilizar Cron Job

En un proyecto que tengo con unos colegas de la uni, me he visto ante una duda a la cual mis conocimientos de programador no hayaban respuesta, ¿cómo hacer para que a las 12 de la noche se actualice un campo de la base de datos?. Buscando por internet leo "Cron Job", así que indago sobre ello y milagrosamente descubro que es lo que necesito (bueno, y más).

Cron Job es un servicio de los servidores en Linux (para Windows está el "Programador de Tareas") que ejecuta en un momento, o varios, determinado por el usuario un script en PHP (es decir un archivo .php). Viene muy bien cuando tienes que ejecutar alguna modificación diaria de la base de datos, como actualizar o borrar registros, aunque se le podría dar mas usos (los que php permita).


El pantallazo corresponde al panel del Cron Job que tengo en mi servidor de pruebas, puede que a vosotros os salga algo distinto, pero la lógica es la misma, tienes que colocar la ruta donde se encuentra el archivo .php, y luego ya puedes configurar cuando quieres que se ejecute, si diariamente, semanalmente, cada hora o cuando sea, por ejemplo yo he programado un Cron Job con la misma configuración que sale en la imagen, eso significa que se ejecutará todos los días de todas las semanas de todos los meses a las 00:00, es decir, a media noche.

El servicio de Cron Job es esto, a partir de ahí está el script que cada uno le meta, yo esta noche comprobaré si mi script funciona.