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

Ultrastar Deluxe

El Karaoke para Linux La llegada de la Navidad significa reuniones con familiares y amigos, lo que nos lleva a buscar formas de entretenimiento. Una de ellas es el karaoke , y como no podría ser de otra manera en GNU/Linux tenemos nuestra opción Open Source, se trata de UltraStar Deluxe (para mí la mejor opción), que está basado en el primer Ultrastar aunque bastante más completo y fácil de usar. Esta aplicación es un clon libre de Singstar con el que podrás cantar cualquier canción e incluso crear la tuya propia. Si estáis interesados en instalarlo puedes añadir el repositorio para Ubuntu o bajarlo desde la página oficial en caso de usar otra distribución. sudo add-apt-repository ppa:tobydox/ultrastardx sudo apt-get update sudo apt-get install ultrastar-deluxe Una vez instalado sólo quedará añadir canciones . Como no podía ser de otra manera, existe una comunidad muy activa que nos proporciona gran cantidad de material listo para ser usado, una de ellas es Ultrastar

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

Control PS3 en Debian, Ubuntu

INSTALAR EL CONTROL DE PLAY STATION 3 EN GNU / LINUX. EN LAS DISTRIBUCIONES DEBIAN 6.0 SQUEEZE, DEBIAN WHEEZY (TESTING), LINUX MINT DEBIAN EDITION, LINUX MINT, GUADALINEX, UBUNTU. Les voy a decir como conectar su control de Play Station 3 en Debian por medio de un cable USB, personalmente lo he probado en Debian 6.0 Squeeze (estable) y Debian Wheezy (testing), no lo he probado en Linux Mint Debian Edition (LMDE), pero no tendría porque no funcionar. En el caso de Ubuntu y sus derivadas supongo que también debería funcionar, no lo he probado porque no uso dicha distro, pero los comandos los tome de un tutorial para ella, no es “copy and paste” , solo copie los comandos, el resto es de mi experiencia personal. NOTA PARA USUARIOS DE LINUX MINT, GUADALINEX Y UBUNTU: Los comandos que voy a poner son para Debian y Linux Mint Debian Editon, para el caso de Ubuntu y derivados ya saben que los comandos como root se ejecutan con “sudo”. Además creo q