Inicio > Internet y redes, Linux, Trucos > Sincronizar carpetas en linux con rsync

Sincronizar carpetas en linux con rsync

jueves, 25 de octubre de 2012 Dejar un comentario Ir a comentarios

Me ha pasado varias veces que quiero sincronizar una carpeta con otra, por ejemplo al hacer respaldos para no borrar todo y copiar todo de nuevo, siendo que no todos los archivos se han modificado.

 

Pero en cualquier distro de linux está la solución: es el comando rsync.

 

Este comando – como dice su página de manual – sirve para copiar archivos de un lugar a otro, remotamente y localmente, y tiene la característica “delta-transfer” que sólo copia las diferencias entre archivo origen y destino.

 

image

 

La sintaxis del comando es

 

rsync –av <origen> <destino>

 

Donde origen o destino pueden ser carpetas y archivos del sistema de archivos local. En el caso de sistemas de archivos remotos se usa la misma sintaxis que el comando scp: <host>:<path>

 

Ejemplos:

 

rsync –av /var/www /media/pendrive/

 

Crea carpeta www en /media/pendrive y copia su contenido ahí

 

rsync –av /var/www/ /media/pendrive/www

 

Igual que el comando anterior, en el origen no tiene el "/" al final, eso quiere decir que "quiero copiar la carpeta misma", mientras que el primero "quiero copiar su contenido"

 

rsync –av /var/www/ misitio.com:/home/misitio/public_html/

 

Este comando copia el contenido de /var/www en la carpeta public_html remota. Util para sincronizar los archivos del hosting, siempre que éste soporte SSH.

 

rsync –av /var/www/ usuario@misitio.com:/home/misitio/public_html/

 

Y si el usuario del hosting no es el mismo de tu computador debes especificarlo igual que en ssh y scp.