rsync es un programa de transferencia de archivos para Linux que le permite copiar directorios y archivos con un simple comando, uno que incluye opciones adicionales más allá de la función de copia tradicional.
Una de las características útiles de rsync es que cuando lo usas para copiar directorios desde la línea de comandos, puedes excluir archivos de forma sistemática. De esta forma, si estás usando rsync para hacer copias de seguridad de archivos, puedes hacer que sólo haga copias de seguridad de los archivos que realmente quieres archivar, evitando todo lo demás.
Sintaxis de rsync
Usar el comando rsync correctamente requiere que siga la sintaxis correcta:
rsync[OPCIÓN].... [SRC].... DEST]
rsync[OPCIÓN].... [SRC].... USUARIO@]HOST:DEST
rsync[OPCIÓN].... [SRC].... USUARIO@]ANFITRIÓN::DEST
rsync[OPCIÓN].... .... rsync://[USER@]HOST[:PORT]/DEST
rsync[OPCIÓN].... USUARIO@]HOST:SRC[DEST]
rsync[OPCIÓN].... USUARIO@]ANFITRIÓN::SRC[DEST]
rsync[OPTION].... rsync://[USER@]HOST[:PORT]/SRC[DEST]La opción espacio provisto arriba puede ser llenado con varias cosas. Vea la sección RESUMEN DE OPCIONES de la documentación de rsync para una lista completa, pero aquí hay algunos ejemplos:
- -v , --verbose : Aumentar la verbosidad
- --info= FLAGS: Verbosidad informativa detallada
- --debug= FLAGS: Depuración de errores de grano fino
- --msgs2stderr : Manejo de salida especial para depuración
- -q , --quiet Suprimir mensajes no erróneos
- --no-motd : Suprimir MOTD en modo demonio
- -c , --checksum : Skip based on checksum, not mod-time and size
- -r , --recursivo : Recurrir a directorios
- -b , --backup : Hacer copias de seguridad
- --backup-dir= DIR: Hacer copias de seguridad en una jerarquía basada en DIR
- --suffix= SUFFIX: Sufijo de la copia de seguridad
- -d , --dirs : Transferir directorios sin recurrencia
Ejemplos de rsync
He aquí algunos ejemplos de cómo usar rsync con algunas de esas opciones:
Consejo : En cada uno de estos ejemplos, el texto en negrita no se puede cambiar porque es parte del comando. Como puede ver, las rutas de las carpetas y otras opciones son personalizadas para nuestros ejemplos específicos, por lo que van a ser diferentes cuando las use.
< rsync /home/jon/Desktop/data/*.jpg /home/jon/Desktop/backupdata/
En este ejemplo anterior, todos los archivos JPG de la carpeta /data/ se copian en la carpeta /backupdata/ de la carpeta del usuario Jon's Desktop.
< rsync --max-size= 2k /home/jon/Desktop/data/ /home/jon/Desktop/backupdata/
Este ejemplo de rsync es un poco más complicado ya que está configurado para not copiar archivos si son mayores de 2.048 KB. Es decir, sólo para copiar archivos más pequeños que el tamaño indicado. Puede utilizar k, m, or g para indicar kilobytes, megabytes y gigabytes en el multiplicador de 1.024, o kb, mb, o gb para utilizar 1.000.
< rsync --min-size= 30mb /home/jon/Desktop/data/ /home/jon/Desktop/backupdata/
Lo mismo se puede hacer para --min-size, como se ve arriba. En este ejemplo, rsync sólo copiará archivos de 30 MB o mayores.
< rsync --min-size= 30mb --progress /home/jon/Desktop/data/ /home/jon/Desktop/backupdata/
Cuando usas rsync para copiar archivos bastante grandes, como de 30 MB o más, y especialmente cuando hay varios de ellos, es posible que quieras ver el progreso de la función de copia en lugar de asumir que el comando se ha congelado. En esos casos, utilice la opción --progress para observar cómo el proceso alcanza el 100%.
rsync --recursive /home/jon/Desktop/data /home/jon/Desktop/data2
La opción --recursive proporciona una forma fácil de copiar una carpeta entera a una ubicación diferente, como a la carpeta /data2/ en nuestro ejemplo.
< rsync -r --exclude="* .deb " /home/jon/Desktop/data /home/jon/Desktop/backupdata
También puede copiar una carpeta completa pero excluir archivos de una determinada extensión de archivo, como los archivos DEB de este ejemplo. Esta vez, toda la carpeta /data/ se copia a /backupdata/ como en el ejemplo anterior, pero todos los archivos DEB se excluyen de la copia.