1. Problemas con caracteres especiales en los nombres de archivo
¿Hay caracteres especiales en los nombres de archivo? Dependiendo del sistema de archivos en el que está escribiendo estos archivos, es posible que no le permitan prefijar archivos con un punto ( .
), por ejemplo.
2. Problemas con los tiempos de modificación de rsync y webdav2
Me encontré con esta publicación de blog donde se describe rsync
un problema con un problema al escribir / rastrear los tiempos de modificación de archivos en los directorios de box.com montados en webdav2.
El problema aparece así en el sistema de archivos montado:
david@sydney:~/Pictures$ ls -l /mnt/box/bwca/08/09/IMG_3084.CR2
-rw-r--r-- 1 david david 12564061 Aug 14 16:08 /mnt/box/bwca/08/09/IMG_3084.CR2
david@sydney:~/Pictures$ ls -l 2012/08/09/IMG_3084.CR2
-rw-rw-r-- 1 david david 12564061 Aug 9 13:00 2012/08/09/IMG_3084.CR2
Ese mismo artículo mostró una solución alternativa:
$ rsync -avhP --size-only --bwlimit=64 2012/08 /mnt/box/bwca/
Esta es una forma correcta de usar rsync
, pero solo está comparando archivos en función de su tamaño ahora, no sus sumas de verificación.
3. Problemas con davfs2 (WebDAV)
Me encontré con este hilo titulado: rsync a través de davfs2? en el foro WebDAV (davfs) en sourceforge. Alguien estaba preguntando acerca de una situación similar en la que querían usar WebDAV para montar un proveedor de almacenamiento en línea y realizar rsync en el almacenamiento montado a través de WebDAV. Esto es lo que dijo uno de los desarrolladores (Werner Baumann) de WebDAV sobre este tema .
extracto de la respuesta de Werner
davfs2 solo cargará archivos completos. No puede hacer las cosas incrementales que normalmente hace rsync, y eso hace que rsync sea muy eficiente.
davfs2 usa un caché local en el disco. Esto lo hará más receptivo y su aplicación también debería beneficiarse de esto. Pero necesita espacio en disco local para esto. Debe permitir un gran tamaño de caché, de modo que rsync pueda hacer la mayor parte de su trabajo con el caché local, y davfs2 cargará la mayoría de los archivos en segundo plano, cuando rsync ya haya finalizado.
Werner continúa sugiriendo lo siguiente
Esto podría ser una desventaja en este caso. Cuando rsync lee un archivo en el host remoto, primero debe ser transferido por davfs2 al caché local (si aún no está allí). Esto podría hacer que el proceso sea realmente lento e innecesario. Como rsync solo funciona como un sofisticado programa de copia en su caso, podría ser mejor usar cp en su lugar. cp tiene una opción (-u) para copiar solo archivos que son más nuevos que los del sistema de archivos davfs2 (= unidad inteligente) y no necesitaría leer los archivos, sino que solo lee metadatos de archivos como mtime.
Un comando como "cp -pru directory / to / backup dav /" podría hacer el trabajo. No debe descargar archivos (como rsync podría hacerlo, pero no estoy seguro) (consulte los manuales de cp y rsync).
Opciones?
Entonces, como ha sugerido @Anthon, puede usar el cp -u
método para copiar los archivos. Al darse cuenta de que este método solo analiza el tamaño de un archivo como un factor en comparación, por lo que no es completamente confiable.
Usted no debe usar cualquier cosa que sólo se basa en tiempos de modificación al comparar archivos, cp -pru
. Werner explica por qué en este hilo :
extracto en cuestión con tiempos de modificación
Cuando desmonta un sistema de archivos davfs2 y lo monta nuevamente en algún momento posterior, los tiempos de archivo pueden haber cambiado de acuerdo con la información de tiempo del servidor. Herramientas como cp -pu y rsync no pueden confiar en estos tiempos para determinar qué archivos han cambiado.
Entonces, dados los diversos problemas que rodean los tiempos de modificación, un enfoque que utiliza sumas de comprobación puramente parece mejor:
$ rsync -avvz --omit-dir-times --checksum --human-readable --progress <local dir> <remote dir>
--max-size=250M --exclude '.*'
. Estoy seguro de quecp
se puede hacer esto ... ¿tal vez canalizando la salida de find en cp? Pero todavía no sé cómo hacerlo. Si encontramos una solución, lo intentarécp -ru
. Gracias