Sincronizar carpetas en linux con rsync
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.
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.
Comentarios recientes