[ubuntu-ar] Codificación de caracteres y rsync

Pablo Lillia pablofer72 at yahoo.com.ar
Wed Sep 30 20:59:34 UTC 2015


El 30/09/15 a las 00:01, Pablo Cinquini escribió:
> Perdón que insista. la interfaz Grsyn tiene casilleros para activar
> las opciones "Mantener propietario", "Mantener permisos" y "Mantener
> grupo" que yo no activé. Por eso, supongo que no debe venir por ahí el
> problema. Cuando utilizo la opción de simular el proceso, la orden que
> mandaría es:
>
> rsync -r -n -t -v --progress --delete -s /origen /destino
>
> Si tildo las tres casillas mencionadas, sería:
>
> rsync -r -n -t -p -o -g -v --progress --delete -s /origen /destino
>
> Haciendo "man rsync", indica que las opciones "-p", "-o" y "-g" son
> para mantener permisos, propietario y grupos. Entiendo que, sin
> indicarle eso al programa, esos atributos no se mantendrían en la
> copia.
>
> Por otra parte, en mi pc, cambié uno por uno el nombre de los archivos
> con problemas sacando los caracteres problemáticos (acentos, con
> signos de interrogación, con comillas, dos puntos) y el proceso
> finalizó sin errores. ¿Esto no abonaría mi teoría sobre el problema en
> los nombres?. Copio el error que me tira en la otra máquina, donde no
> toqué los nombres de archivo; si se fijan, la mayoría de los nombres
> tiene alguno de esos caracteres, el resto son carpetas cuyo nombre
> termina con un espacio:
>
> rsync: recv_generator: mkdir "/media/julieta/ADATA HV620/back up
> JULI/Documentos/Katatay " failed: Invalid argument (22)
> *** Skipping any contents from this failed directory ***
> rsync: recv_generator: mkdir "/media/julieta/ADATA HV620/back up
> JULI/Documentos/Literatura Iberoamericana I/Najera/Las literaturas
> hispánicas: Hispanoamérica - Evelyn Picon Garfield, Iván A. Schulman -
> Google Libros_archivos" failed: Invalid argument (22)
> *** Skipping any contents from this failed directory ***
> rsync: recv_generator: mkdir "/media/julieta/ADATA HV620/back up
> JULI/Documentos/Revistas " failed: Invalid argument (22)
> *** Skipping any contents from this failed directory ***
> rsync: mkstemp "/media/julieta/ADATA HV620/back up
> JULI/Documentos/Literatura Iberoamericana I/.Arellano, Azul: nuevas
> perspectivas.pdf.VoX33W" failed: Invalid argument (22)
> rsync: mkstemp "/media/julieta/ADATA HV620/back up
> JULI/Documentos/Literatura Iberoamericana I/.Darío, Análisis de
> "Margarita".doc.97erNc" failed: Invalid argument (22)
> rsync: mkstemp "/media/julieta/ADATA HV620/back up
> JULI/Documentos/Literatura Iberoamericana I/.Rama, Martí: modernidad y
> latinoamericanismo.pdf.pzozWo" failed: Invalid argument (22)
> rsync: mkstemp "/media/julieta/ADATA HV620/back up
> JULI/Documentos/Literatura Iberoamericana I/Najera/.Las literaturas
> hispánicas: Hispanoamérica - Evelyn Picon Garfield, Iván A. Schulman -
> Google Libros.html.VmvVDL" failed: Invalid argument (22)
> rsync: mkstemp "/media/julieta/ADATA HV620/back up
> JULI/Documentos/Literatura Iberoamericana I/Seminario Costa/.Costa,
> Delectación morosa: lugones y el erotismo.doc.5y733W" failed: Invalid
> argument (22)
> rsync: mkstemp "/media/julieta/ADATA HV620/back up
> JULI/Documentos/Literatura Iberoamericana I/Seminario
> Costa/.Hernández, Lugones: el halo erótico de la moda.doc.N4cvz8"
> failed: Invalid argument (22)
> rsync: mkstemp "/media/julieta/ADATA HV620/back up
> JULI/Documentos/Seminario FADU UBA/.Clase: moda y lit s XX.doc.tDZ24j"
> failed: Invalid argument (22)
> rsync: mkstemp "/media/julieta/ADATA HV620/back up
> JULI/Documentos/Seminario FADU UBA/.clase: moda y lit s
> XIX.doc.vZ1aDv" failed: Invalid argument (22)
> rsync: mkstemp "/media/julieta/ADATA HV620/back up
> JULI/Documentos/conicet/Moda/Lipovestky/.Lipovetsky: una sociología
> del presente.pdf.1haJA4" failed: Invalid argument (22)
> rsync: recv_generator: mkdir "/media/julieta/ADATA HV620/back up
> JULI/Documentos/conicet/México/material recopilado en
> México/Biblioteca de México/escáner/otras " failed: Invalid argument
> (22)
> *** Skipping any contents from this failed directory ***
> rsync: mkstemp "/media/julieta/ADATA HV620/back up
> JULI/Documentos/conicet/México/.Indice "Mitologías" Glantz.doc.ByQcjg"
> failed: Invalid argument (22)
> rsync error: some files/attrs were not transferred (see previous
> errors) (code 23) at main.c(1183) [sender=3.1.0]
> Estado del proceso de salida de rsync: 23
>
> ¿Hay alguna manera de cambiar alguna configuración del disco externo
> para que acepte estos nombres (sin formatearlo a ext)? ¿o en su
> defecto cambiar masivamente los nombres de los archivos locales para
> que no generen problemas al pasarlos al disco? De paso: la información
> de mi mail anterior es errónea; el formato del disco es fat32.
>
> Saludos.
>
> Pablo Cinquini.
>

Me llama la atención que fallaron archivos y carpetas solo por tener 
espacios al final del nombre. Estaba viendo que hay un parámetro -s (ó 
--protect-args) que hace que los espacios en los nombres de archivos no 
sean interpretados como varios parámetros, y cambia el comportamiento 
con caracteres especiales. Si parte del nombre del archivo se interpreta 
como parámetro, tendría lógica que se mostraran errores 22 (argumento 
inválido).

Proba agregando el parámetro -s, a ver si es eso.

    -s, --protect-args

        This option sends all filenames and most options to the remote
        rsync without allowing the remote shell to interpret them. This
        means that spaces are not split in names, and any non-wildcard
        special characters are not translated (such as ~, $, ;, &,
        etc.). Wildcards are expanded on the remote host by rsync
        (instead of the shell doing it). [...]


Revisando el comando que te genera:

rsync -r -n -t -p -o -g -v --progress --delete -s /origen /destino

el -n significa dry-run (no hacer cambios, probar la ejecución nomás). 
El -r es para que sea recursivo (que entre en los directorios). Estimo 
que no lo usas cuando haces la copia, sino no copiaría nada.
El -t es para que preserve los timestamps de modificación.
El -p es para que preserve los permisos. Sin duda no sirve para FAT32. 
Quitalo.
El -o es para preservar el propietario del archivo (tampoco sirve para 
FAT32), y el -g hace lo mismo para los grupos. Tampoco sirve para FAT32. 
Quitalo.
El -v (verbose) es para que muestre información de lo que está haciendo. 
El --progress muestra información del avance del proceso.
El --delete borra los archivos extraños en el destino, es bastante 
peligroso si se usa mal. Lo que hace, es borrar cualquier archivo extra 
que ya estaba en el destino, para los directorios sincronizados, como 
pueden ser versiones viejas de los archivos o que fueron borrados en el 
origen. Hay que usarlo con mucho cuidado.

Todo esto está en el manual de rsync. Se puede acceder con el comando:
     man rsync
No te lo digo en onda RTFM, sino porque sinceramente hay muchísimos 
otros parámetros en rsync, que sirven para excluir cosas, aplicar 
filtros, etc., que vale la pena revisar si son necesarios en tu uso. El 
man suele estar en inglés, pero a veces hay versiones en castellano 
también, si esto fuera un problema.

Consejo: te recomendaría reformatear el disco en NTFS o exFAT, aunque no 
hay una solución ideal para todos los casos. Con FAT32 te aseguras que 
lo lee cualquier cosa, pero tiene más limitaciones: no acepta archivos 
grandes de más de 4GB, es más hincha con los nombres de los archivos, 
etc. Ni NTFS ni exFAT tienen esas limitaciones, y en la práctica, 
funcionan igual de bien (o mal) para usos normales, aunque el soporte de 
ambos en Linux tiene sus cosas, en la práctica, funcionan.

Otro detalle de FAT32: guarda las fechas en hora local, en lugar de 
UTC... lo que puede traer problemas.

Como decía Fernando en otro email... antes proba bien todo con datos de 
juguete. Por ejemplo: agarra un pendrive, formatealo igual que tu disco, 
y usalo de conejillo de indias con un conjunto de datos más chico aunque 
bien representativo de todos los casos raros. Porque si la pifias con un 
parámetro usando tus datos reales, podes hacer percha algo :P

Saludos,
Pablo



More information about the Ubuntu-ar mailing list