No estás registrado (Registrarse)

Vanilla 1.1.10 es un producto de Lussumo. Para más información: Documentación, Soporte.

    • CommentAuthorproph
    • CommentTimeFeb 25th 2010 editado
     # 1
    Hola,

    Esta semana he tenido un horrible problema con uno de mis servidores que me ha causado algunas pérdidas de datos en algunas webs basadas en Wordpress (a causa de la ineptitud de los del host que sólo tenían un backup de hacía un mes y mía por no tener ningún tipo de copia de seguridad).

    Finalmente he conseguido solventar el problema (en la medida de lo posible) estoy buscando soluciones para que esto no vuelva a pasar.

    Principalmente me estoy fijando en plugins de backup, pero la mayoría de ellos te dejan los archivos en el servidor, por lo que tienen flaca utilidad. Alguien sabe de algún sistema plugin u otro, que se pueda implementar fácilmente en todos los sitios y que permita o bien almacenar dichas copias en un tercer servidor, un Amazon S3, o que lo mande por email, y que sea lo máximo de configurable posible.

    ¿Cómo lo hacéis vosotros?Mis cosas: Intercambio de enlaces | Tienda de setas
    •  
      CommentAuthorGintoni
    • CommentTimeFeb 25th 2010
     # 2
    Yo uso wp-db-backup plugin para hacer una copia de la base de datos. Se pueden seleccionar las tablas que quieres que copie en la copia de respaldo que puedes configurar para que se te envie a tu correo con la cadencia que desees. El plugin tiene otras opciones que ahora no alcanzo a recordar. Pero para el tema de la bases de datos te puede asegurar que es muy cómodo.

    Esto no quita que si tienes algun problemilla, como comentas, al no tener una copia de la carpeta wp-content deberías bajarte de nuevo el theme y todos los plugins que estes utilizando en esa copia de wordpress. Ni que decirte tengo que como hayas modificado tu theme de alguna manera tendrás que volver a tocar cualquiera de los ficheros de tu theme. No se si existe algun plugin o sistema que te envie o realice una copia de seguridad de dicha carpeta.

    Saludos proph
    •  
      CommentAuthorAntonio
    • CommentTimeFeb 25th 2010 editado
     # 3
    Yo me lo separaría en 2, uno de la base de datos y otro de los ficheros, ya que la frecuencia de actualización suele ser diferente.

    Lo que hay que copiar es la base de datos MYSQL y la carpeta wp-content (sobre todos por los fichero subidos para los artículos).

    Puedes usar este script que uso para los míos:

    <?
    $db["host"] = "localhost";
    $db["user"] = "usuariomysql";
    $db["pass"] = "contraseñamysql";
    $db["name"] = "nombremysql";

    // MySQL
    $fichero_mysql = "/home/proph/backups/".$db["name"] . date("d-m-Y") . '.sql';
    system( "mysqldump -h ".$db["host"]." -u ".$db["user"]." -p".$db["pass"]." ".$db["name"]." > ".$fichero_mysql );

    // Ahora de la carpeta wp-content
    $fichero_wp_content = "/home/proph/backups/wp-content" . date("d-m-Y") . '.tgz';
    system( "tar czvf ".$fichero_wp_content." /home/proph/public_html/wp-content" );

    // Ahora enviamos el mail
    include "libmail.php"; // Esta librería la uso a menudo porque solo ocupa 9kb http://lwest.free.fr/doc/php/lib/index.php3?page=mail&lang=en
    $m= new Mail;
    $m->From( "Copia de Seguridad MYSQL <backup@electronico.biz>" );
    $m->To( "Proph <micorreo@electronico.biz>" );
    $m->Subject( "Copia Diaria de MYSQL de mi Wordpress" );
    $m->Body( "Copia de seguridad MySQL\nSaludos." );
    $m->Priority(3) ;
    $m->Attach( $fichero_mysql ) ;
    $m->Attach( $fichero_wp_content ) ;
    $m->Send();

    // Borramos los fichero del servidor
    unlink( $fichero_mysql );
    unlink( $fichero_wp_content );
    ?>


    En mi caso lo uso por separado y anoto dos sentencias al cron, una para la base de datos (para una mysql que uso tengo que hacer una copia decente :)), y otra para los ficheros. La mysql diaria y los ficheros semanalmente.

    Para hacer un cron editas el fichero cron ("crontab -e" en la consola) y añades:
    00 5 * * * root php mi_programita.php
    Esto es para hacerlo todos los días a las 5:00.
    Si solamente lo quieres hacer los sabados(7) a las 5:00
    00 5 7 * * root php mi_programita.php
    Si quires la copia a la 1:30 de la mañana los martes y los sábados
    30 1 3,7 * * root php mi_programita.php

    Si usas cpanel también se puede añadir en el cron, cambiando el usuario root por tu usuario.

    Espero que pueda servirte :D
    :phantom:

    PD: Tu propuesta me ha servido para un nuevo post :D
    •  
      CommentAuthorroot78
    • CommentTimeFeb 26th 2010
     # 4
    gracias por la info,alearisLa Curiosidad es el Principio de toda Filosofía.
    •  
      CommentAuthorMarc
    • CommentTimeFeb 26th 2010
     # 5
    Si usas Mac, puedes utilizar el Automator para que lo haga automáticamente cada X tiempo, yo lo tengo configurado para que descargue el contenido, lo comprima, renombre al día actual y lo archive en la partición de backup. (Necesitas el Transmit para poder descargar el contenido del servidor).Domaining...! Te ayudo con la gestión de tus dominios en INWX España
    • CommentAuthorproph
    • CommentTimeFeb 26th 2010
     # 6
    Muchas gracias Gintoni y Alearis (y DrKaOs, aunque no tengo Mac :wink:)

    Alearis, tu código tiene muy buena pinta, así que voy a intentar implementarlo. Si veo que tengo muchos problemas para hacerlo funcionar o es mucho coñazo de instalar ya tiraré de Plugin, que tiende a ser más sencillo :eyebrows:. Pero lo cierto es que esto de las distintas cadencias para template y base de datos me parece una excelente idea.

    El único pero que le veo es que para bases de datos muy grandes se podría dificultar el tema del envío por correo no?Mis cosas: Intercambio de enlaces | Tienda de setas
    •  
      CommentAuthorAntonio
    • CommentTimeFeb 26th 2010 editado
     # 7
    Posted By: prophEl único pero que le veo es que para bases de datos muy grandes se podría dificultar el tema del envío por correo no?


    Es cierto que cuando ocupan mucho, elcorreo electrónico puede limitar un poco el tema. esto más bien es para blog pequeños y simples.
    Si quieres, en lugar de por email puedes subirlo por ftp a otro sitio cambiando la parte del envío

    // Ahora enviamos el mail
    include "libmail.php";
    $m= new Mail;
    $m->From( "Copia de Seguridad MYSQL <backup@electronico.biz>" );
    $m->To( "Proph <micorreo@electronico.biz>" );
    $m->Subject( "Copia Diaria de MYSQL de mi Wordpress" );
    $m->Body( "Copia de seguridad MySQL\nSaludos." );
    $m->Priority(3) ;
    $m->Attach( $fichero_mysql ) ;
    $m->Attach( $fichero_wp_content ) ;
    $m->Send();


    por:


    // Envío por FTP
    include( "class.ftp.php" );
    $f = new PHP_FTP( 'miftp.midominio.com', 'usuario', 'contraseña' ); // Se puede añadir el puerto como último argumento. Por defecto el 21.
    $f->send( $fichero_mysql, '/directorio/de/mi/otro/hosting' );
    $f->send( $fichero_wp_content, '/directorio/de/mi/otro/hosting' );
    $f->kill();


    Usando la clase ftp de Weberdev http://www.weberdev.com/get_example-4475.html- He elegido esta porque es bastante pequeña también.

    Por último añadir que puedes hacerte un pequeño cron sin usar el cron de linux, cargando el script con tu web y verificando cuándo fue la útima vez que se hizo el backup.


    :phantom:

    PD: Se me olvidaba decir, que si tienes tu propio servidor dedicado, otra buena forma de mantenerlo sincronizado con nuestro ordenador es usar un servidor de subversion (instalando en windows torstSNV o en linux NautiusSNV como cliente). Hay muchos clientes diferentes, puedes buscar en los repositorios de debian/ubuntu o en los de redhat (por ejemplo snv-tools) y puedes sincronizarlo directamente desde tu carpeta local.
    •  
      CommentAuthorRondamon
    • CommentTimeFeb 26th 2010
     # 8
    Este es bueno http://www.howtoforge.com/creating-mysql-backups-with-automysqlbackup-on-ubuntu-9.10 yo lo he probado en un servidor que tengo en casa, creo que un compartido te tocaría hacer un cronjob.. sin embargo examinalo un poco mas.. salu2Rondamon ;-) | Miembro de Honor demenita desde 2007