1. ¡OFERTA! con cupón "DIRVPS": hosting por $0,01 y también VPS Linux y Windows por $0,01 el primer mes por Interserver ← publi
    Descartar aviso
Descartar aviso
Al usar este sitio web, aceptas que nosotros y nuestros socios podamos establecer cookies para fines tales como personalizar el contenido y la publicidad. Más información.

Backups Remotos con Rsnapshot

Tema en 'Servidores Dedicados' iniciado por Datacenter1, 12 Oct 2007.

  1. Datacenter1

    Datacenter1 Usuario activo

    [Objetivo]
    ========

    Instalar y configurar rsnapshot para realizar backups remotos a servidores Linux y Windows.

    [A quien va dirigido]
    ===============

    Administradores de sistema y a toda persona que requiera de backups automatizados en un ambiente heterogéneo

    [Introducción - Que es Rsnapshot ]
    ==========================

    Rsnapshot es una colección de scripts escritos en Perl que automatizan el proceso de crear copias de seguridad incrementales, su gran ventaja es que permite crear diferentes "snapshots" (capturas de la data) almacenar varios de estos snapshots sin necesidad de usar espacio adicional.

    La clave de rsnaphot es que solo copia el contenido que ha cambiado desde el último snapshot.

    [Como funciona]
    ============

    Rsnaphot utiliza RSync un conocido y popular programa de sincronización y transferencia de archivos. Rsnaphot se instala en un servidor *nix (1) con suficiente espacio en disco, una vez instalado y configurado, rsnapshot "jalará" la data de los servidores remotos, la belleza de rsnaphot radica en que solo copiará los archivos que han sido modificados y en el backup si el archivo no ha sido modificado solo estará presente una vez, para entender mejor este punto, usemos un ejemplo:

    Tenemos un servidor de backup con 200 GB de espacio disponible, también tenemos 2 servidores con 50 GB de data que queremos respaldar en el servidor de backup y deseamos realizar 4 backups diarios rotativos a 7 días (rsnaphot guardará 4 backups diarios + uno diario x 7 días) lo que nos da un total de 11 snapshots, es decir estamos intentando hacer 11 backups de 100 Gb c/u quepan en 200 GB de espacio? Si, con rsnaphot es posible !!

    La primera vez que corremos rsnaphot, este hará un backup total y por supuesto ocupará 100Gb, por cada snaphot adicional requerirá apx ~ 3GB (2), por supuesto esto depende de cada servidor, cada snaphot se verá exactamente como un backup completo, el truco está en los hardlinks cada archivo repetido solo se almacenará una vez.

    [Requerimientos]
    ============
    Rsync en el servidor de backup y los servidores a respaldar
    Perl (solo en el servidor de backup)
    Servidor de backup *nix (2) con suficiente espacio en disco.

    [Instalación]
    =========

    Podemos instalar rsnapshot desde dos formas distintas, rpm, o compilar nuestro propio paquete:

    Instalación desde RPM's:

    Desde el servidor de backup y como root ejecutamos el siguiente comando:
    CODE, HTML o PHP Insertado:
    rpm -Uvh http://www.rsnapshot.org/downloads/rsnapshot-1.3.0-1.noarch.rpm
    
    Este comando bajará e instalará rsnaphot es un solo comando, ¿fácil no?​

    Instalación desde archivos fuente:

    Desde el servidor de backup y como usuario root, ejecutamos:

    CODE, HTML o PHP Insertado:
    cd /usr/local/src # establecemos la ubicación para descargar el paquete
    wget http://www.rsnapshot.org/downloads/rsnapshot-1.3.0.tar.gz # bajamos el paquete
    tar xzvf rsnapshot-1.3.0.tar.gz #Descomprimimos con tar
    cd rsnapshot-1.3.0 # Cambiamos al directorio de instalación
    ./configure --sysconfdir=/etc # Configuramos
    make install # compilamos e instalamos
    cp /etc/rsnapshot.conf.default /etc/rsnapshot.conf # copiamos el archivo de configuración
    
    Listo !!! ya hemos instalado rsnapshot.​

    [Configuración de rsnaphot]

    rsnaphot incluye un archivo de configuración, bastante sencillo de entender, solo hay que tener una precaución especial todos los elementos deben estar separados por TABULADORES no por espacios.

    Ahora vamos a configurar rsnapshot:

    Con nuestro editor de texto favorito editamos el archivo /etc/rsnaphot.conf, la mayoría de las opciones se pueden dejar por defecto, sin embargo aquí comentaremos las más importantes:

    CODE, HTML o PHP Insertado:
    snapshot_root   /.snapshots/
    
    Es la ubicación en donde se almacenarán los backups, ejemplo:

    snapshot_root /backup/ # es obligatorio el "/" inicial y final

    CODE, HTML o PHP Insertado:
    interval        hourly  6
    interval        daily   7
    interval        weekly  4
    #interval       monthly 3
    
    Configura los intervalos de almacenamiento, en este ejemplo rsnaphot guardará 6 copias diarias, 7 copias diarias (una cada día) 4 copia semanales (una cada semana)
    Note que no guardará copias mensuales porque se ha comentado la línea, configure sus intervalos de acuerdo a sus necesidades, pero siempre respetando el orden de menor a mayor, es decir del menor intervalo de tiempo al mayor (hourly, daily, weekly y monthly)

    CODE, HTML o PHP Insertado:
    
    ###############################
    ### BACKUP POINTS / SCRIPTS ###
    ###############################
    # EXAMPLE.COM
    #backup_script   /bin/date "+ backup of example.com started at %c"   unused1
    #backup root@example.com:/home/ example.com/    +rsync_long_args=--bwlimit=16,exclude=core
    #backup root@example.com:/etc/  example.com/    exclude=mtab,exclude=core
    #backup_script  ssh root@example.com "mysqldump -A > /var/db/dump/mysql.sql"
    #backup root@example.com:/var/db/dump/  example.com/
    #backup_script   /bin/date "+ backup of example.com ended at %c"   unused2
    
    En esta sección, configuraremos nuestros backups y directorios donde se guardaran, el formato es el siguiente:

    backup [origen] [destino]

    Ejemplo:
    backup root@example.com:/home /example.com/

    En este caso haremos un backup de directorio /home ubicado en el servidor example.com al cual ingresaremos como usuario root (por supuesto requerimos los permisos necesarios que veremos más adelante)

    Podemos añadir tantas líneas backup [origen] [destino] como necesitemos

    Recuerde que todos los elementos deben estar separados por tabuladores.

    Grabamos los cambios y verificamos que la sintaxis de nuestro archivo de configuración está correcta

    CODE, HTML o PHP Insertado:
    rsnapshot configtest
    
    Si todo está correcto seguimos con el siguiente paso, sino volvemos a editar y corregimos los errores (les comenté que no deben dejar espacios entre los elementos sino tabuladores?)

    Para poder ingresar a los servidores remotos, sin necesidad de utilizar password, es necesario que configuremos keys. (esto lo veremos en otro tutorial)

    [Automatización de backups]

    Para que todo sea verdaderamente automático, utilizaremos las tareas cron
    crontab - e e introducimos algo como
    CODE, HTML o PHP Insertado:
    0 3 * * * /usr/bin/rsnapshot hourly
    0 7 * * * /usr/bin/rsnapshot daily
    0 16 * * 0 /usr/bin/rsnapshot weekly
    0 23 1 * * /usr/bin/rsnapshot monthly 
    
    Deberás configurarlo de acuerdo a tus necesidades y a los intervalos que has seleccionando en rsnaphot

    [Probamos]

    rsnapshot incluye una útil herramienta para comprobar el resultado

    rsnapshot -t hourly no genera el backup, solo nos muestra los comandos que usará, el truco lo logramos con el parámetro -t

    [Tips para Windows]

    Podemos hacer que rsnaphot haga copias de seguridad de servidores Windows, para ello solo debemos instalar cwRsync un Rsync server portado para Windows, podemos descargarlo desde aquí

    Luego de instalado, editamos el archivo rsyncd.conf ubicado en el directorio donde instalamos cwRsync y lo ajustamos de la siguiente manera:
    CODE, HTML o PHP Insertado:
    use chroot = false
    strict modes = false
    hosts allow = [B][IP del servidor de backup sin corchetes][/B]
    log file = rsyncd.log
    pid file = rsyncd.pid
    
    # Module definitions
    # Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
    #
    [c]
    path = /cygdrive/c
    read only = false
    transfer logging = yes
    
    [d]
    path = /cygdrive/d
    read only = false
    transfer logging = yes
    Ahora solo tenemos que configurar en /etc/rsnapshot.conf la orden de backup a windows, algo como:

    CODE, HTML o PHP Insertado:
    backup ip_windows::c/WINDOWS /windows/
    
    En este ejemplo haremos un backup del directorio windows, ubicado en el servidor ip_windows y lo guardaremos en el directorio /rsnapshot_root/windows del servidor de backup

    NOTE los [::] antes de la letra de la unidad
    #################################################

    (1) Técnicamente puede ser instalado en Windows debido a que solo requiere de Perl, Rsync (disponibles para Win) y algunas herramientas standard de Linux, también disponibles para Windows vía Cygwin.

    (2) En promedio los archivos que cambian en un servidor web son aproximadamente el 3% de la data almacenada.

    ################################################
    Autor: Guillermo Calvo
     
  2.  
  3. hoster

    hoster Usuario activo

    :eek::p Excelente, me fue de ayuda :). Gracias!
     
  4. WebTech

    WebTech Súper Moderador Miembro del Staff Moderador CH

    Muy interesante aporte Guillermo!!, seguro servirá a la comunidad como una alternativa más a los tradicionales métodos de backup.

    Gracias! :aprueba:
     
  5. DavidC

    DavidC 8 de Mayo de 2008 Q.E.P.D.

    Excelente aporte.

    ¿podría usarse para hacer backups remotos via ftp?, por ejemplo, de servidor web a disco duro local.
     
  6. Datacenter1

    Datacenter1 Usuario activo

    Puede usarse para hacer backups a un pc local, pero no usa FTP sino Rsync que es un protocolo más seguro y eficiente que FTP.
     
  7. DavidC

    DavidC 8 de Mayo de 2008 Q.E.P.D.

    Perdona la insistencia pero, ¿no es necesaria una ip fija para descargar la copia a un disco duro local?. ¿Cuál sería el procedimiento para descargar la copia en la carpeta "Respaldos" de mi ordenador local (con windows XP) ?

    Gracias
     
  8. Datacenter1

    Datacenter1 Usuario activo

    Disculpame tu a mi que no de más detalles acerca de la instalación en tu configuración particular, el tutorial es para servidores de backup corriendo bajo *NIX no Windows

    Tal como dije: (1) Técnicamente puede ser instalado en Windows debido a que solo requiere de Perl, Rsync (disponibles para Win) y algunas herramientas standard de Linux, también disponibles para Windows vía Cygwin.

    Sin embargo desconozco el procedimiento exacto ya que nunca lo he realizado de esa forma, prefiero que el servidor de backup corra linux y se encargue de realizar el backup tanto a servidores Linux como Windows, si lo que deseas hacer es backups automatizados de servidores a tu pc local corriendo windows, seguro encontrarás mejores herramientas que rsnapshot, sin embargo aquí te dejo un link con instrucciones detalladas (en Ingles) http://blog.gingerlime.com//rsnapshot-server-on-windows
     
  9. DavidC

    DavidC 8 de Mayo de 2008 Q.E.P.D.

    Gracias, le echaré un vistazo ;-)
     
  10. kokev21

    kokev21 Usuario activo

    hola.... excelente tutorial....

    mira tengo las siguientes dudas, haber si me pueden ayudar...
    como lo haria si las maquinas que debo respaldar, no tienen ip fija.... podria usar algo asi como Dyndns.org o no-ip.org...

    o como podria hacerlo para poder implementar el servicio de backup remotos...

    ahh si no me equivoco.. esta version ( y lo digo por el rpm) corre bajo red hat...

    en el sitio de rsnapshot dice que pronto sale la version para debian...??

    saludos............
     
  11. Datacenter1

    Datacenter1 Usuario activo

    Saludos kokev21

    No hay problema en usar dns dinámicos, ya que la configuración te permite conectarte por ip o por nombre del host

    Puedes compilarlo para debian

    cd /usr/local/src # establecemos la ubicación para descargar el paquete
    wget http://www.rsnapshot.org/downloads/rsnapshot-1.3.0.tar.gz # bajamos el paquete
    tar xzvf rsnapshot-1.3.0.tar.gz #Descomprimimos con tar
    cd rsnapshot-1.3.0 # Cambiamos al directorio de instalación
    ./configure --sysconfdir=/etc # Configuramos
    make install # compilamos e instalamos
    cp /etc/rsnapshot.conf.default /etc/rsnapshot.conf # copiamos el archivo de configuración
     
  12. kokev21

    kokev21 Usuario activo

    ok.. pero mas detalladamente, tu como lo harias para implementar el servicio de backup remoto a un usuario comun...
     
  13. Datacenter1

    Datacenter1 Usuario activo

    La mejor y más fácil opción es irse por el camino de los dns dinámicos

    El resto de la instalación es exactamente igual, solo que en el archivo rsnapshot.conf en vez de poner las ips de los equipos a "backear" deberás poner el host que te de tu proveedor de dns dinámicos
     
  14. kokev21

    kokev21 Usuario activo

    y entonces... (disculpa que sea insistente con el tema)

    si el pc remoto a respaldar esta en una lan... que puerto usa el este sistema para redirteccionar en el router..??

    cual va a ser el directorio que va a respaldar.... en la maquina remota..??
     
  15. Datacenter1

    Datacenter1 Usuario activo

    Rsnapshot usa rsync por lo que necesitas el TCP 873 abierto

    las líneas #backup root@example.com:/midata/ example.com/ controlan que es es lo que se va respaldar y donde lo hará, en el ejemplo estamos respaldo el directorio remota "data" del equipo example.com, los backups son guardados en el servidor de backup en el directorio que establezcas en "snapshot_root" que por defecto es " /.snapshots/"
     
  16. kokev21

    kokev21 Usuario activo

    si el equipo remoto es con windows, es de la misma forma....

    donde example.com es el nombere de la maquina, o el nombre de host por ejemplo del dns dinamico....??

    salidos
     
  17. Datacenter1

    Datacenter1 Usuario activo

    Lee la sección "Tips para Windows"

    example.com debe ser la IP pública (si estás de detrás de dispositivo con NAT) ol nombre válido del host (o el nombre de host que te asigne tu proveedor de dns dinámico)
     


Alojamiento web, Hosting Reseller, Servidores Dedicados - All in Hosting


    
    
    
    
Blog · Sitios amigos: GuiaHosting · Unidominios · Interalta ·