Rsync

Generalidades

rsync es una herramienta de copia/sincronización de archivos rápida y versátil que se utiliza en los sistemas operativos Linux y OSX. Es útil para hacer una copia de seguridad de tu contenido en tu computador local, así como para enviar tu contenido local al servidor web. También te permite sincronizar rápidamente archivos de dos computadores para que sigan siendo los mismos.

En los siguientes ejemplos, username sería tu usuario Shell y example.com tu sitio web.

Usar rsync para publicar tus archivos

Cuando usas rsync para cargar los archivos (o cambios) de tu sitio, puede determinar qué archivos han cambiado y cargar solo los archivos modificados. Esto asegura que un archivo no se duplique al sincronizar.

Ejemplo básico

En el caso más simple, sin ningún filtro, así es como se ve un comando rsync "push out to webhost":

[server]$ rsync -e "/usr/bin/ssh"  --bwlimit=2000 -av local_directory username@server.dreamhost.com:remote_directory

Explicación de campos

  • rsync - siempre inicia el comando completo con esto..
  • -e - Especifica el programa de shell remoto que se utilizará. Esto siempre puede permanecer como /usr/bin/ssh.
  • bwlimit - (Opcional) Te permite especificar una tasa de transferencia máxima en kb/sec.
  • -av - Modo de archivo y detallado.
  • local_directory - Este es el directorio local en tu compurador donde almacenas la información para ser subida. Por ejemplo: /home/username/documents/mybackups
  • username - Este es tu usuario Shell de DreamHost asignado a tu sitio.
  • server - Este es el nombre del servidor al que está cargando contenido. Consulta el artículo Cómo encontrar tu nombre de host para obtener instrucciones sobre cómo ubicar este nombre.
  • remote_directory - Este es el directorio en el servidor al que desea cargar contenido. Por ejemplo, si deseas descargar todo el contenido de tu directorio /example.com agrega la ruta completa del archivo en el serviror: /home/username/example.com/.

    Si agregas una barra diagonal al final de la ruta, solo descargará el contenido de ese directorio, pero no el nombre del directorio en sí.

    Si no agregas la barra al final, el directorio se descargará con todo lo que contiene.

Para evitar errores, se recomienda utilizar la ruta completa para los directorios locales y remotos. Aquí hay un ejemplo completo (excluyendo la banderilla --bwlimit).:

[server]$ rsync -e "/usr/bin/ssh" -av /home/username/documents/mybackups username@server.dreamhost.com:/home/username/example.com 

Puedes encontrar más información sobre las banderas o tags utilizadas anteriormente aquí:

Configurar filtros

También es posible establecer filtros para qué archivos incluirá y cuáles ignorará. Esto hace posible tener una configuración de un solo paso completamente automatizada una vez que sus filtros están en su lugar.

Ejemplo de filtro

La forma más sencilla de agregar un filtro es agregarlo a la línea de comando rsync. Puedes hacer lo siguiente para filtrar archivos .pyc y directorios /.git:

[server]$ rsync --filter '- *.pyc' --filter '- /.git'  -e "/usr/bin/ssh" --bwlimit=2000 -av local_directory username@server.dreamhost.com:remote_directory

Consulta la siguiente página para obtener más detalles:

rsync para Windows

rsync también está disponible para Windows, pero la configuración incluye algunos pasos más. Una solución es usar Delta Copy. La versión 'sin formato' sin instalador funciona bien.

Una nota sobre rsync para Windows es que usa rutas de estilo * nix incluso si están en tu máquina con Windows.

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?