rsync es una herramienta para sincronizar los ficheros y directorios que tenemos almacenados en un sitio en otro diferente minimizando la transferencia de datos
###Uso:
rsync [OPTION] SRC DEST
###Opciones básicas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| -r: Modo recursivo.
-l: Mantiene los enlaces simbólicos.
-p: Mantiene los permisos en archivos y subdirectorios.
-t: Mantiene la hora y fecha.
-g: Mantiene el grupo.
-o: Mantiene el dueño (owner).
-D: Mantiene los archivos de dispositivo (root).
-a: Es el modo Archive. (Usar a es lo mismo que poner -rlptgoD).
-t: Preserva los tiempos de modificación de los archivos que están siendo transferidos.
-q: Suprime todos los mensajes que no sean de error,es contrario a -v.
-d: Copia los archivos de un directorio sin utilizar recursividad para copiar los directorios internos.
-l: Copia los symlinks como symlinks
-L: Copia los archivo a los que un symlink está apuntando cuando encuentre un symlink.
-W: Copia archivos enteros, cuando utilizamos el algoritmo de delta-transfer solo se copia la parte de un archivo que fue actualizada.
-h: Muestra la información que provee rsync en un formato más legible (K's, M's, G's).
-m: No envía los directorios vacíos.
-z: Comprimirá el bloque antes de pasarlo.
-n: El comando no haga nada en realidad, se usa para ve si esta bien el script.
–upDate: Actualiza los ficheros en el destino SÓLO si el origen de la copia han sido modificados
--progress: Muestra el progreso de los archivos que están siendo transferidos.
--delete: Borra archivos directorio destino si han sido borrados en origen (sincronizas)
--exclude=PATTERN: Excluir archivos que coinciden con la expresión PATTERN
--exclude-from=FILE: Obtener el conjunto de expresiones del archivo especificado por FILE
--include=PATTERN: No excluir los archivos que coinciden con la expresión PATTERN
--include-from=FILE: Obtener el conjunto de expresiones del archivo especificado por FILE
--files-from=FILE: Incluir los archivos especificados en el archivo FILE
|
####include-from
el carácter + indica incluir
el carácter - indica excluir
/ matchea con el directorio /
/* matchea con todos los archivos en /
/** matchea con todos los archivos y directorios en /
/*** matchea con todos los archivos y directorios en / e incluso también con /
el - * al final indica que lo que no ha sido aceptado hasta entonces se excluya
1
2
3
4
| + */
+ /etc/ssh/*
+ /var/log/*
- *
|
####exclude-from
1
2
3
4
5
6
| *.lnk
*.regtrans-ms
*.DAT*
*.dat*
*.LOG*
*.log*
|
###Pc local a pc remoto
Copia archivos mientras muestra el progreso para cada copia.
1
| rsync -avz --progress /tmp/ user@server.com:/home/pi/algo/
|
Copia los archivos inferiores en tamaño a 10Mb y superiores a 1MB.
1
| rsync -avz --max-size='10240k' --min-size='1024k' ~/Documentos user@server.com:/home/pi/algo/`
|
###Pc remoto a pc local
Excluye todos los archivos y directorios excepto los de tipo .zip.
1
| rsync -avz --exclude='*' --include='*.zip' user@server.com:/home/pi/algo/ /media/hd2/mibackup
|
Todos los datos se copian y transfieren cifrados sobre ssh.
1
| rsync -avze ssh user@server.com:/home/pi/algo/ /media/hd2/mibackup/
|
###Local
El que uso habitualmente
Copia archivo en modo Archive para sincronizar directorios
Muestra el progreso para cada copia
Muestro información mas legible, no envió directorios vacíos
1
| rsync -av -hm --delete --progress --exclude-from 'exclude.txt' "/cygdrive/c/Users/" /cygdrive/l/BackUp/
|
###Rsync con clave privada
#EN PROCESO
http://troy.jdmz.net/rsync/index.html
##Importante
Respecto a cómo pasarle los nombres de los directorios, hay que tener una especial atención respecto a si ponemos una barra al final del nombre del directorio o no, ya que significan cosas distintas:
1
2
| rsync -av /src/foo /dest => /path/foo significa "el directorio foo"
rsync -av /src/foo/ /dest/foo => /path/foo/ significa "lo que hay dentro de foo"
|
En windows en vez de escribir C:\
-> /cygdrive/c/
.
Usar siempre rutas absolutas.
usar el parámetro -n
para evitar eliminar archivos no deseados, el comando no hace nada.
Fuente: 0 1