rsync ​
Este comando sincroniza tanto directorios como archivos de un lugar a otro, el mismo tiene 2 parametros obligatorios para su utilización. documentación
rsync ruta/directorio/a/respaldar usuario@host:ruta/respaldo
Una estrategia frecuentemente utilizada al momento de mantener un backup es mantener uno o más directorios en sincronización. En los sistemas tipo UNIX la herramienta de preferencia para esta tarea es rsync
.
-z
Activa la compresión del archivo respaldado.-v
Activa el modo verbose, esto significa que el comando documentara el respaldo.-r
Activa la recursividad que sera usada para que el comando entre dentro de los directorios y respalde, de no ser asi solo respaldara el primer directorio.-a
La opción -a es una combinación de banderas. Significa "archive" y sincroniza de forma recursiva preservando links simbólicos, archivos especiales, modificaciones de tiempo, grupo, propietario y permisos.-n
Corre una simulación--dry-run
que se puede utilizar para conocer sin riesgos el resultado de utilizar el comando.--exclude-from=archivo
Excluye los archivos o directorios que se establezcan en el archivo pasado.
--itemize-changes ​
Entendiendo la salida de rsync --itemize-changes
Como es imaginable, la opción --delete
puede ser muy destructiva si no se es cuidadoso. Para prevenir borrar archivos por equivocación es útil la opción --itemize-change
junto con --dry-run
, la primer opción nos detallará los cambios a incluÃr, mientras que la segunda no realizará ningún cambio, sino que servirá como un simulacro.
La salida se verá como algo asÃ:
.d..t..g... ./
.f...p.g... teorico.pdf
.f.....g... md5sum-2020-09-15.txt
.f...p.g... 07_compresion.md
.d.....g... .metadata/
.f...p.g... .metadata/.lock
.f...p.g... .metadata/.log
.f...p.g... .metadata/version.ini
>f+++++++++ Parameter_Usage.txt
Donde el primer campo de cada linea indica lo que rsync harÃa con cada archivo.
Andrea Francia escribió este pequeño esquema el cual sirve de ayuda para entender el formato de la salida de --itemize-change
.
YXcstpoguax path/to/file
|||||||||||
`----------- the type of update being done::
|||||||||| <: file is being transferred to the remote host (sent).
|||||||||| >: file is being transferred to the local host (received).
|||||||||| c: local change/creation for the item, such as:
|||||||||| - the creation of a directory
|||||||||| - the changing of a symlink,
|||||||||| - etc.
|||||||||| h: the item is a hard link to another item (requires --hard-links).
|||||||||| .: the item is not being updated (though it might have attributes that are being modified).
|||||||||| *: means that the rest of the itemized-output area contains a message (e.g. "deleting").
||||||||||
`---------- the file type:
||||||||| f for a file,
||||||||| d for a directory,
||||||||| L for a symlink,
||||||||| D for a device,
||||||||| S for a special file (e.g. named sockets and fifos).
|||||||||
`--------- c: different checksum (for regular files)
|||||||| changed value (for symlink, device, and special file)
`-------- s: Size is different
`------- t: Modification time is different
`------ p: Permission are different
`----- o: Owner is different
`---- g: Group is different
`--- u: The u slot is reserved for future use.
`-- a: The ACL information changed
Este esquema esta basado en el manual de rsync.