programar backup con rsync y cron de manera rápida y simple

Primeramente vamos a introducirnos a lo que es..

rsync es una aplicación libre para sistemas de tipo Unix y microsoft window$ que ofrece transmisión eficiente de datos incrementales, que opera también con datos comprimidos y cifrados. Mediante una norma de delta encoding, permite sincronizar archivos y directorios entre dos máquinas de una red o entre dos ubicaciones en una misma máquina, minimizando el libro de datos transferidos. Una característica importante de rsync no encontrada en la masa de programas o protocolos es que la copia toma lugar con sólo una transmisión en cada dirección. rsync puede reproducir o mostrar directorios contenidos y copia de archivos, opcionalmente usando compresión y recursión.

Actuando como un daemon de servidor, rsync escucha por imperfección el puerto TCP 873, sirviendo archivos en el protocolo aborigen rsync o via un terminal retirado como RSH o SSH. En el postrero caso, el ejecutable del cliente rsync debe entidad instalado en el host local y remoto.

rsync se distribuye bajo la licencia GNU General Public License.

Cron En el método activo Unix, cron es un administrador regular de procesos en segundo plano (demonio) que ejecuta procesos o guiones a intervalos regulares (por ejemplo, cada minuto, día, semana o mes). Los procesos que deben ejecutarse y la hora en la que deben hacerlo se especifican en el fichero crontab. El nombre cron viene del griego chronos que significa «tiempo».

Cron se podría fijar como el «equivalente» a Tareas Programadas de window$.

Por que manejar rsync

Simplemente por que es un Software especifico para la realización de copias, funciona de manera a acelerar las transferencias al reproducir las diferencias entre 2 archivos, en ves de reproducir el archivo entero todas las veces.

Eso mismo. rsync consigue identificar que archivos fueron alterados y el administrador puede escoger por reproducir solamente los archivos nuevos o modificados no necesariamente todos los archivos, lo que tomaria el proceso de backup demorado de manera innecesaria.

Ese recurso puede presentar una gran ventaja, principalmente para backups diários de grande cantidad de archivos.

Otro gran beneficio es que rsync guarda las informaciones sobre permisos y propiedades de los archivos y directorios, contenido de links simbólicos.

Instalando el rsync

El primer paso es apostar el rsync, si no lo tiene. Si utilizamos Debian, nos logueamos como root y escribimos:

# apt-get install rsync

Si utilizas ubunti escribe:

$ sudo apt-get install rsync

Solamente para revalidar si el rsync que instalamos está funcionando normalmente, escribimos en la linea de comando:

$ rsync

En el éxito de que aparezcan informaciones de la ayuda del rsyn es por que fue instalado correctamente.

Configurando el archivo backup

En el archivo de abajo será utilizado el siguiente parametro con el rsyn para que realize la copia: -Cravzp.

De esta forma, el rsync está siendo accionado para:

-C: auto-ignorar archivos identicos;
-r: reproducir de forma recursiva, osea todos los directorios y subdirectorios en el camino especificado;
-a: indica que estaran siendo copiados archivos;
-v: modo detallado, más información de copia;
-z: comprime los archivos durante la copia;
-p: indicador de progreso de copia.

#!/bin/bash

INICIO=`date +%d/%m/%Y-%H:%M:%S`
LOG=/var/log/`date +%Y-%m-%d`_nombree-del-archivo-de-log.txt

echo » » >> $LOG
echo » » >> $LOG
echo «|———————————————–» >> $LOG
echo » Sincronización iniciada en $INICIO» >> $LOG

sudo rsync -Cravzp /carpeta-de-origen/ /carpeta-de-destino/ >> $LOG
FINAL=`date +%d/%m/%Y-%H%:M:%S`

echo » Sincronización Finalizada en $FINAL» >> $LOG
echo «|———————————————–» >> $LOG
echo » » >> $LOG
echo » » >> $LOG

Explicando el archivo de backup

En la primera linea hay un aviso del interpretador de comandos que debe entidad utilizado el bash:

#!/bin/bash

Almacena el momento de inicio en la variable INICIO, en formato dd/mm/yyyy-hh:mm:ss:

INICIO=`date +%d/%m/%Y-%H:%M:%S`

Almacena en la variable LOG que archivo debe entidad grabado en el registro de backup, en el formato yyyy-mm-dd_nombre-del-archivo.txt:

LOG=/var/log/`date +%Y-%m-%d`_nombre-del-archivo-de-log.txt

Manteniendo ese archivo, puede entidad muy util para que pueda comprobar los backups que han sido realizados correctamente.

Crea el inicio del registro de log en el archivos, grabando una cabecera en el cual insterte el dia y hora de inicio del backup:

echo » » >> $LOG
echo » » >> $LOG
echo «|——————————————–» >> LOG
echo » Sincronización iniciada en $INICIO» >> $LOG

Esa es la linea que realiza el backup en realidad. Invoca al comando rsyn y invoca los parametros de cuales archivos reproducir y para que destino. A cada archivo copiado, una linea será insertada en el archivo de log. De esta forma el administrador puede conocer cuales de los archivos fueron copiados en el backup de un día determinado.

sudo rsync -Cravzp /carpeta-de-origen/ /carpeta-de-destino/ >> $LOG

Almaneza el momento de término del backup en la variable FINAL, en el formato:

FINAL=`date +%d/%m/%Y-%H%:M:%S`

Finaliza el archivo de backup con un pie en el cual inserta el día y la hora del termino del backup:

echo » Sincronización Finalizada en $FINAL» >> $LOG
echo «|——————————————–» >> $LOG
echo » » >> $LOG
echo » » >> $LOG

Observaciones: En éxito de que desees reformar los parametros del rsync para la copia, consulta el manual de rsync con el comando rsync.

Se sugiere crear una carpeta en /var/log con el nombre rsync y formar todos los logs del rsync en esa carpeta.

Programando cron para cristalizar el backup

Cron es un servicio de Linux que es cargado durante el proceso de boot del sistema. Funciona como un programador de tareas que permite programar la ejecución de comandos y procesos de manera repetitiva para un trabajo en especifico.

El daemon (una clase de programa que ejecuta tareas en segundo plano) cron ejecuta los comandos en los días y horarios especificados. A cada minuto el daemon verifica si hay alguna tarea a entidad ejecutada.

Todas las acciones del cron son realizads en base de registros en una clase de tabla conocida como crontab.

Para los familiarizados con GNU/Linux, No hay secretos para la configuración del cron via linea de comando.

Para los que poseen menos dominio de Linux sugiero que instalen el Webmin. Se trata de una herramienta de administración atraves de interfaz web que facilita mucho la savia del administrador.

Para apostar el Webmin, puede desencajar desde:

http://www.webmin.com/download.html

A los usuarios de Debian y Ubuntu y otras distros derivados de debian pueden desencajar el paquete .deb.

Si utilizamos Debian escribimos como root:

# dpkg -i webmin_version-del-webmin-copiado.deb

Si utilizas ubuntu escribe:

$ sudo dpkg -i webmin_version-del-webmin-copiado.deb

En éxito de que presente dependencias en otros paquetes, instalamos los paquetes que solicita.

Ya con el Webmin instalado, accedemos en el navegador en la dirección https://192.168.1.11:10000 y escriba su usuario de método GNU/Linux.

Dentro del Webmin, accedemos al menu Sistema > Tareas programadas (CRON).

No elimine las tareas ya existentes! puede producir algunos daños al sistema.

Accedemos en la alternativa «Crear nueva tarea programada».

En la próxima Ventana, una propuesta de tarea sería:

Ejecutar tarea programada como: root
Activo: si
Descripción:
Ejecutar cuando: Horarios y días seleccionados abajo
Minutos: Seleccionados 0
Hora: Seleccionados 17
Dias: Todos
Meses: Todos
Dias da semana: Todos
Ejecutar en qualquer día: si

Su backup programado esta listo!

Verifique en el primer backup si los archivos fueron copiados correctamente para el destino y confirme el registro de log del archivo. Si todo esta ok, en los momentos indicados el backup programado furor funcionando automáticamente, sin intervención manual.

Mais informaciones
sobre el rsync en:
http://samba.anu.edu.au/rsync/

sobre el Webmin en:
http://www.webmin.com/

Espero les sea de ayuda

Fuentes de Información

El contenido del post es de mi autoría, y/o, es un recopilación de distintas fuentes.

programar backup con rsync y cron de manera rápida y simple

Deja un comentario

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