Copias de seguridad con rsync

En el artículo de hoy hablaré de las funciones de rsync para realizar copias de archivos, que en muchos casos serán de seguridad, para garantizar nuestros backups.

Rsync es una aplicación de software libre, que nos permite copiar archivos de manera cifrada y comprimida, si así lo deseamos, conservando los atributos de los ficheros de origen.

Utilizando cron podemos sincronizar ficheros y carpetas, minimizando el volumen de datos transferidos.

Por defecto utiliza el puerto 873 si funciona cómo daemon, también podemos hacer que utilice el protocolo ssh.

Es software libre, utiliza la licencia GNU General Public License.

 

Instalación de rsync

La instalación en sistemas GNU/Linux y tipo Unix es bastante sencilla, de hecho, en muchas distribuciones ya viene preinstalado.

En sistemas basados en paquetes .DEB (Debian, Ubuntu, LinuxMint entre otros)

  1. apt-get -y install rsync

En sistemas basados en paquetes .RPM (Red Hat, CentOS, Fedora entre otros)

  1. yum install rsync

En Suse y OpenSuse

  1. zypper install rsync

En Arch

  1. pacman -S rsync

En FreeBSD

  1. pkg install rsync

 

Opciones principales

Un ejemplo básico sería el siguiente:

  1. rsync -av /home/usuario /copiaseguridad

Veamos los parámetros que hemos utilizado.

  • Con -a copiamos recursivamente además de mantener los privilegios, permisos y fecha de creación.
  • Con -v, es decir, modo verbose, visualizamos los ficheros que vamos copiando.

Si queremos que la información que transferimos sea comprimida, para así ahorrar ancho de banda, sería así:

  1. rsync -avz /home/nuestrousuario /copiaseguridad

Explicamos el nuevo parámetro:

  • Con -z, hacemos que los ficheros se transfieran de manera comprimida.

Si deseamos transferir los ficheros usando ssh entre nuestro equipo y otro remoto, lo haríamos de la siguiente manera:

  1. rsync -rtvz nuestracarpeta/ usuario@dominio:/destino

Tenemos dos parámetros nuevos:

  • Con -r indicamos que es de forma recursiva
  • Con -t preservamos el tiempo de modificación de los archivos.

Imaginemos que queremos copiar usando rsync nuestra carpeta /home/usuario pero no que copia la subcarpeta «Descargas», ¿Cómo lo haríamos?

  1. rsync -rtv --exclude 'directorio' folder-origen/ folder-destino/

Tenemos un nuevo parámetro:

  • Usando –exclude podemos excluir las carpetas que nos interese copiar.

Si fuese un fichero:

  1. rsync -rtv --exclude 'file.txt' folder-origen/ folder-destino/

Más adelante podremos ver cómo sincronizar carpetas e incluso proyectos web ubicados en diferentes servidores. ¡Estad atentos! : )

Os dejo dos fabulosos enlaces donde tratan rsync con profundidad:

Sincronizando carpetas con rsync

Página man de rsync (en inglés)

Nos vemos pronto!!

See you soon!!