Ir al contenido principal

programar backup con rsync y cron


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 técnica 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 volumen de datos transferidos. Una característica importante de rsync no encontrada en la mayoría de programas o protocolos es que la copia toma lugar con sólo una transmisión en cada dirección. rsync puede copiar o mostrar directorios contenidos y copia de archivos, opcionalmente usando compresión y recursión.

Actuando como un daemon de servidor, rsync escucha por defecto el puerto TCP 873, sirviendo archivos en el protocolo nativo rsync o via un terminal remoto como RSH o SSH. En el último caso, el ejecutable del cliente rsync debe ser instalado en el host local y remoto.

rsync se distribuye bajo la licencia GNU General Public License.

Cron En el sistema operativo 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 definir como el "equivalente" a Tareas Programadas de window$.

Por que usar rsync

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

Eso mismo. rsync consigue identificar que archivos fueron alterados y el administrador puede optar por copiar 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, inclusive de links simbólicos.

Instalando el rsync

El primer paso es instalar 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 confirmar si el rsync que instalamos está funcionando normalmente, escribimos en la linea de comando:

$ rsync

En el caso 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: copiar 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 ser 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 ser 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 ser muy util para que pueda verificar 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 copiar y para que destino. A cada archivo copiado, una linea será insertada en el archivo de log. De esta forma el administrador puede saber cuales de los archivos fueron copiados en el backup de un día determinado.

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

Almacena 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 caso de que desees modificar 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 grabar todos los logs del rsync en esa carpeta.

Programando cron para realizar 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 especie 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 ser ejecutada.

Todas las acciones del cron son realizads en base de registros en una especie 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 vida del administrador.

Para instalar el Webmin, puede descargar desde:

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


A los usuarios de Debian y Ubuntu y otras distros derivados de debian pueden descargar 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 caso 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 sistema 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 opción "Crear nueva tarea programada".

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

Ejecutar tarea programada como: root
Activo: si
Descripción: <descriva aqui su tarea para que puedas acordarte despes>
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 ira 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

Entradas populares de este blog

Fallo al obtener la lista de compartición del servidor

 - Ubuntu Karmic Koala El problema. El detalle es que a veces tengo que revisar archivos que están en otras computadoras que utilizan windows. Al momento de darle en el menú Lugares - Red - Red de Windows y al elegir el grupo de trabajo en el que están mis equipos me aparece el siguiente error. No se puede montar el lugar. Fallo al obtener la lista de compartición del servidor. La solución . La encontré en este articulo de los Foros de Ubuntu, lo voy a copiar tal cual, espero que no le moleste al autor y solo a manera de respaldo. # — Aquí inicia el articulo de los foros de Ubuntu – 1- En principio es necesario que estén instalados: samba samba-common smbclient winbind   2- Luego editar el archivo /etc/samba/smb.conf sudo gedit /etc/samba/smb.conf   A los cambios necesarios para adaptar el sistema, según los tutoriales de samba es necesario tener presente que: a- Donde dice workgroup = WORKGROUP, reemplazar WORKGROUP por el nombre de grupo de ...

Descargar Packet Tracer 5.2 [Windows y Linux]

Packet Tracer 5.2 [Windows y Linux] Packet Tracer es la herramienta de aprendizaje y simulación de redes interactiva para los instructores y alumnos de Cisco CCNA. Esta herramienta les permite a los usuarios crear topologías de red, configurar dispositivos, insertar paquetes y simular una red con múltiples representaciones visuales. Packet Tracer se enfoca en apoyar mejor los protocolos de redes que se enseñan en el currículum de CCNA. Este producto tiene el propósito de ser usado como un producto educativo que brinda exposición a la interfaz comando – línea de los dispositivos de Cisco para practicar y aprender por descubrimiento. Packet Tracer 5.2 es la última versión del simulador de redes de Cisco Systems, herramienta fundamental si el alumno está cursando el CCNA o se dedica al networking. En este programa se crea la topología física de la red simplemente arrastrando los dispositivos a la pantalla. Luego clickando en ellos se puede ingresar ...

Mensaje de bienvenida en la Consola

Es una pequeña utilidad para mostrar texto ASCII en la consola. Se llama Figlet y la podemos instalar en Ubuntu con “sudo apt-get install figlet”. Podemos hacer que aparezca un mensaje de bienvenida en la consola si añadimos estas lineas al archivo “$HOME/.bashrc”: #Mensaje figlet “Texto Que quieras $USER”