Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/08/2009, 16:37
Avatar de morior
morior
 
Fecha de Ingreso: agosto-2009
Ubicación: Barcelona
Mensajes: 437
Antigüedad: 14 años, 9 meses
Puntos: 12
Problema con la copia de seguridad

Hola amigos, primero felicitaros por esta comunidad tan buena que ha sido una visita constante durante el desarrollo de mi proyecto. Siempre os he leído y nunca he preguntado porque siempre he encontrado las respuestas que buscaba en este foro, hasta ahora.

La cuestión es que he diseñado una aplicación web tipo apache-php-mysql donde el punto más fuerte es la base de datos, motivo por el cual es necesario hacer una copia de seguridad periódica.

Tengo contratado un servidor virtual en el que corre un sistema operativo de linux. Por lo que mi idea era crear un script y llamarlo cada día con crontab sobre las 4 de la mañana (hora de menos actividad) para hacer la copia de seguridad de la base de datos.

Después de mucho, mucho buscar encontré un script que me corre a la perfección en mi servidor local (mi máquina tiene instalado un windows xp).

Aquí les pego el código:

Código PHP:
$serv="XXXX"//nombre del servidor
$bd="XXXX";  //nombre de la base de datos
$usr="XXXX"//usuario para conectarse a la base de datos
$pwd="XXXX"//password del usuario
$mysqldump='"C:\xampp\mysql\bin\mysqldump.exe"';
//el nombre del backup llevara la fecha y hora del servidor:
$nombre_back "juego2_";
$nombre_back .= date("d-n-Y_h-i");

passthru("$mysqldump $bd -h $serv -u $usr -p$pwd > C:/xampp/htdocs/".$nombre_back.".sql"$error); 
El problema está en que al cambiar cuatro parámetros para subirlo al servidor el script no me hace nada y cuando le digo que me imprima el error de la función passthru me dice 127. He buscado por todos lados el error pero no encuentro nada, he probado otros scripts que he encontrado y he intentado comprender qué es lo que no me está funcionando bien pero parece que es algo que me supera.

Aquí les dejo el código que subo a la web para hacer la copia de seguridad:

Código PHP:
$serv="XXXX"//nombre del servidor
$bd="XXXXX";  //nombre de la base de datos
$usr="XXXXX"//usuario para conectarse a la base de datos
$pwd="XXXXXXXX"//password del usuario
$mysqldump='"/var/lib/mysql/mysqldump"'//<- creo que esta es la ruta correcta
//el nombre del backup llevara la fecha y hora del servidor:
$nombre_back "juego2_";
$nombre_back .= date("d-n-Y_h-i");

passthru("$mysqldump $bd -h $serv -u $usr -p$pwd > XXXX/bakap/".$nombre_back.".sql"$error);

echo 
$error//<- aquí me imprime 127 
Intuyo que el error puede estar en tres puntos:
1- no estoy utilizando bien la función passthru (ya probé con exec y system y nada)
2- no le estoy dando la ruta correcta a mysqldump
3- no le estoy dando la ruta correcta donde guardar el archivo

Pero puede que también esté equivocado.
Siento haber hecho un tema tan largo. Muchas gracias por adelantado.

He escrito este tema en el foro de mysql pero me han dicho que lo ponga aquí en php espero que me puedan ayudar.