¿Cómo mantener la ruta completa con rsync?

64

Al hacer una copia de seguridad con rsync, ¿cómo mantengo la estructura de directorios completa?

Por ejemplo, el servidor remoto es Saturno , y quiero hacer una copia de seguridad de Saturno 's / home / udi / files / pictures en un directorio local llamado copia de seguridad .

Quiero tener (localmente) copia de seguridad / home / udi / files / pictures en lugar de backup / pictures .

Adam Matan
fuente

Respuestas:

76

Use la opción -Ro --relativepara preservar la ruta completa.

Dentrasi
fuente
2

Otro caso de uso relacionado común es mantener una parte seleccionada del árbol de directorios /./, por ejemplo, si lo desea:

backup/files/pictures

puedes escribir:

rsync --relative /home/udi/./files/pictures backup

La magia /./dice desde rsyncdónde comenzar a crear directorios.

Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
fuente
¡Esto funcionó para mí! ¿Es la magia ./una construcción de Linux o específica de rsync? Solo trato de obtener una idea de este comportamiento.
flow2k
@ flow2k solo rsync magic, para POSIX es redundante.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
1

Con Cygwin Windows rsync, y suponiendo que el rsync remoto esté apuntando a la raíz, haría:

rsync -vtrz --delete server::rsyncid/home/udi/files/pictures /cygdrive/d/backup/home/udi/files

Eso colocará el contenido del directorio de imágenes remotas en / backup / home / udi / files / pictures. Presumiblemente, la sintaxis bajo unix sería similar.

JR

John Rennie
fuente
No es útil porque necesitamos reproducir toda la jerarquía de directorios en el lado local antes de ejecutar el comando rsync.
Ludovic Kuty