2010-08-23 12 views
15

que tienen una estructura de directorios y archivos como ésteRsync cómo incluir directorios pero no archivos?

data/ 
data/a.txt 
data/folder/ 
data/folder/b.txt 
data/folder/folder/ 
data/folder/folder/c.txt 
... 

a.txt, b.txt y c.txt son archivos de gran tamaño que son y renovarse con frecuencia generadas por ordenador. No deben ser backuped - pero quiero hacer copia de seguridad de la estructura de directorios:

data/ 
data/folder/ 
data/folder/folder/ 

¿Cómo puedo hacer esto con rsync y --exclude-de, sin especificar todas las carpetas, sino algo así como rsync -a data/* --exclude-from=exclude.rsync "" --onlyfoldersandnotfiles""?

¡Gracias por la ayuda!

+0

Quiero hacer una copia de seguridad de todo mi servidor. En mi servidor, hay 80 GO de datos, pero 60 GO se renuevan cada día, y estos 60 GO son archivos en muchos subdirectorios. Si no hago una copia de seguridad de la estructura del directorio, mis scripts que renuevan los archivos fallan porque esperan que los directorios existan. Lo que quiero es una sola rsync y exclude.rsync para hacer una copia de seguridad de mi servidor. – chicama

Respuesta

21
$ rsync -a -f"+ */" -f"- *" source/ destination/ 

"Los dos argumentos -f significan, respectivamente," copiar todos los directorios "y luego" no copiar nada más "."

detalles: http://psung.blogspot.com/2008/05/copying-directory-trees-with-rsync.html

+0

Una solución realmente brillante. Es mucho más simple que combinar '--include' y' --exclude' para un uso básico. –

+19

En mi humilde opinión esto es mucho más legible: 'rsync -a --include = '* /' --exclude = '*' source/destination /' –

8
rsync -a --include='*/' --exclude='*' source/ destination/ 

Básicamente, primero incluye todos los directorios y, a continuación excluyen todos los archivos.

Cuestiones relacionadas