Rsync y ssh Copias incrementales y automatizadas


 <h3>Las copias de seguridad son importantes, vemos como hacerlas en un equipo remoto:</h3>

man Rsync

1 Configuración de la autenticación ssh.

(asumimos que ya hemos configurado /etc/ssh/sshd_config y tenemos los correspondientes puertos abiertos)

Como queremos programar las tareas con el cron necesitamos que ssh se autentique de forma automática, para ello vamos a generar una llave.

Una descripción previa de la situación

Servidor de backup = el servidor que alojará nuestras copias de seguridad (puede ser nuestro equipo personal, un servidor distinto o cualquier equipo que designemos conveniente para esta función según nuestras necesidades). Lo llamaremos GuardoBackup

Servidor del que queremos hacer backup = este es el servidor que tiene los datos relevantes que queremos, salvar lo llamaremos MehacenBackup


Ambos servidores son remotos y no están en lan.

 

1.1 Generamos llave ssh en Mehacenbackup :

 

:~# ssh-keygen  #(aceptamos todo sin introducir ningún dato)


1.2 Debemos trasferir esa llave a GuardoBackup:

 

 

# ssh-copy-id -i .ssh/id_rsa.pub "usuario@ip_GuardoBackup -p 74767"

Utilizamos las comillas porque nuestro puerto ssh no es 22 lo hemos modificado previamente en el /etc/ssh/sshd_config la opción -p significa puerto.

Si todo ha ido bien nos dará el siguiente mensaje:

Now try logging into the machine, with 'ssh usuario@ip_GuardoBackup -p 74767', and check in:

  ~/.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

Y hacemos caso del mensaje:

:~# ssh usuario@ip_GuardoBackup -p 74767

Si nos loguea sin pedirnos pass, la key ha sido añadida por lo que podemos empezar a configurar el Rsync, en caso contrario debemos de comprobar que la conexión ssh puede establecerse correctamente (ningún firewall bloquea, el puerto y user es correcto, el puerto está abierto en el router en el caso de una red doméstica y hay un forwarding (esto quiere decir que el router está reenviado ese puerto hacia nuestro equipo) de puertos hasta nuestro equipo...etc) una vez comprobado que podemos conectarnos correctamente a ssh volvemos a realizar los pasos anteriores.

2 Lidiando con Rsync

Rsync puede ser configurado como un daemon pero nosotros no lo vamos a hacer así ya que nos nos gusta tener demonios corriendo que no sean imprescindibles para nuestra máquina por muchas razones a si que primero probaremos

rsync -uptorgvlHaz  -e 'ssh  -p 74767' /root/ usuario@ip_GuardoBackup:/home/usuario/backupsServer/.backuproot  -h --progress --stats -r -tgo -p -l -D

Probaremos esa línea donde le estamos diciendo a Rsync que nos haga una copia incremental por ssh en el puerto 74767 del directorio de root y nos la guarde en Guardobackup dentro de /home/usuario/backupsServer/ creando un direcotrio llamado backuproot

si hace la copia y comprabamos en guadobackup que la copia está correcta crearemos un script que será lo que añadamos a cron.

touch scripquetecopia.sh

#!/bin/bash
rsync -uptorgvlHaz  -e 'ssh  -p 74767' /root/ usuario@ip_GuardoBackup:/home/usuario/backupsServer/.backuproot  -h --progress --stats -r -tgo -p -l $
rsync -uptorgvlHaz  -e 'ssh  -p 74767' /etc/ usuario@ip_GuardoBackup:/home/usuario/backupsServer/.backupetc    -h --progress --stats -r -tgo -p -l $
rsync -uptorgvlHaz  -e 'ssh  -p 74767' /var/ usuario@ip_GuardoBackup:/home/usuario/backupsServer/.backupvar    -h --progress --stats -r -tgo -p -l $
rsync -uptorgvlHaz  -e 'ssh  -p 74767' /home/ usuario@ip_GuardoBackup:/home/usuario/backupsServer/.backuphome  -h --progress --stats -r -tgo -p -l $

Cerramos el archivo guardando la info y ya sólo nos queda decirle a cron que lo ejecute cuando nosotros queramos.

contrab -e
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
00  1  *   *    *    sh /root/scriptquecopia.sh

Listo, Copias configuradas.

Si tenéis problemas con algo postead y juntos solucionamos.

Un saludo

ada_lovelance@informatico-madrid.com

Publicado el 15/11/2013 a las 13:01

Comentarios en el post


Esta web utiliza cookies, puedes ver nuestra la política de cookies, aquí Si continuas navegando estás aceptándola
Política de cookies +