rsync --include-from no funciona

rsync --include-from no funciona

Las páginas de manual no tienen ejemplos para esto. Me resulta difícil decirle a rsync que solo incluya algunos archivos donde se encuentran esos archivos. No entiendo por qué hay que excluir para incluir, por qué rsyncsimplemente no se incluye lo que hay en el archivo de inclusión y todo lo demás se excluirá.

Este es mi guión:

rsync -ruv --rsh=ssh --include-from=zz-rsync-test.prod.incl /usr2/subdir remoteSrv:/tmp/.

y este es mi archivo de inclusión que no funciona: Copia demasiado: copia todo lo que hay en el /usr2/subdir (incluido el subdirdirectorio, raro) que no quiero. Quiero copiar solo los archivos per, 42f y xml del data/text_formsdirectorio.

+ data/text_forms/*.per
+ data/text_forms/*.42f
+ data/text_forms/*.xml
+ data/text_forms/*.xml.*

y lo siguiente no funciona, no copia nada:

- *
+ data/text_forms/*.per
+ data/text_forms/*.42f
+ data/text_forms/*.xml
+ data/text_forms/*.xml.*

y tampoco funciona lo siguiente, no copia nada:

- *
+ data/
+ data/text_forms/*.per
+ data/text_forms/*.42f
+ data/text_forms/*.xml
+ data/text_forms/*.xml.*

y tampoco funciona lo siguiente, no copia nada:

- *
+ data/
+ data/text_forms/
+ data/text_forms/*.per
+ data/text_forms/*.42f
+ data/text_forms/*.xml
+ data/text_forms/*.xml.*

Lo siguiente tampoco funciona:

+ */
+ /data/text_forms/*.per
+ /data/text_forms/*.42f
+ /data/text_forms/*.xml
+ /data/text_forms/*.xml.*
- *

Ninguno de los siguientes funciona:

+ /data/
+ /data/text_forms/
+ /data/text_forms/*.per
+ /data/text_forms/*.42f
+ /data/text_forms/*.xml
+ /data/text_forms/*.xml.*
- *

Respuesta1

Encontré la solución. Me tomó dos días completos encontrarlo. Espero que esto te ayude a no perder tanto tiempo.

subdirEl primer problema fue que se incluía el subdirectorio /usr2/subdiry no quería que se incluyera todo el directorio, solo quería que fuera el directorio base, por lo que requiere una barra al final como en /usr2/subdir/, por lo que mi nuevo comando se ve como:

rsync -ruvv --rsh=ssh --include-from=zz-rsync-test.prod.incl /usr2/subdir/ remoteSrv:/tmp/.

Tenga en cuenta que agregué una vopción adicional en la línea de comando ( -ruvv) para obtener más detalles de lo que se excluyó o incluyó al momento de ejecutar el comando. Con el directorio base arreglado y el extra, vfue un poco más fácil crear el archivo de inclusión correcto:

+ data/
+ data/text_forms/
+ data/text_forms/*.per
+ data/text_forms/*.42f
+ data/text_forms/*.xml
+ data/text_forms/*.xml.*
- *

Todas las +líneas deben colocarse antes de - *, especialmente para los directorios, ya que tuve que incluir explícitamente cada directorio para escanear, incluso si no quiero obtener archivos directamente dentro de esos directorios. Hice una prueba agregando a data/anyTestFile1y a data/text_forms/anyTestFile2porque no estaba seguro de si iban a ser recogidos, pero no fue así, así que estoy haciendo lo que quiero... finalmente.

información relacionada