Monté el almacenamiento en la nube Box.com usando davfs de acuerdo con estas instrucciones . Monté mi cuenta de Box.com en / home / me / Cloud / Box
Puedo acceder al sistema de archivos montado a través de Dolphin, así como a través de la terminal. Es un poco lento, pero puedo enumerar (ls) y navegar por toda la estructura del directorio sin errores.
Luego intenté ejecutar rsync de la siguiente manera:
rsync -auvz --max-size=250M --exclude '.*' /home/me/Music/ /home/me/Cloud/Box/Music
También probé:
rsync -auv /home/me/Music/A /home/me/Cloud/Box/Music
y otras variaciones de los comandos rsync. El comando está copiando mi Música de mi sistema de archivos local (/ home / me / Music /) a la nube de Box (/ home / me / Cloud / Box / Music) a través del soporte davfs.
Siempre recibo muchos errores de esta forma:
rsync: mkstemp <filename> failed: Invalid argument (22)
Un ejemplo específico es:
rsync: mkstemp "/home/me/Cloud/Box/Music/VariousArtists/.01_Track_1.mp3.YVmFI9" failed: Invalid argument (22)
Todo esto sucede en Kubuntu 12.04 LTS 64 bit, hardware de nivel de servidor, con una conexión de módem de cable rápida / confiable (velocidades de carga de 12 Mb / s).
--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... -size -250M
hace, de lo contrario usaría+250M
(hubo una versión incorrecta aquí brevemente, pero me di cuenta antes de que se corrigiera la edición)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:
Ese mismo artículo mostró una solución alternativa:
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
Werner continúa sugiriendo lo siguiente
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
Entonces, dados los diversos problemas que rodean los tiempos de modificación, un enfoque que utiliza sumas de comprobación puramente parece mejor:
fuente
got file_sum recv_files(Some_Music_[1999]/Some_Music_[1999]Zuni_SongVarious_Artists24.mp3) rsync: mkstemp "/home/me/Cloud/Box/Music/Some_Music_[1999]/.Some_Music_[1999]Zuni_SongVarious_Artists24.mp3.1aWWRY" failed: Invalid argument (22) got file_sum
got file_sum recv_files(Carlos/Dance/05-Tapestry-Carlos.mp3) rsync: mkstemp "/home/me/Cloud/Box/Music/Carlos/Dance/.05-Tapestry-Carlos.mp3.WeGbGS" failed: Invalid argument (22) got file_sum recv_files(Carlos/Dance/06-Dance-Turquoise_Dance-Carlos.mp3)
rsync
estás usando?rsync --version
.rsync version 3.0.9 protocol version 30
y estoy probando tu solución actualizada ahora. ¡Gracias!Para detener el
Invalid argument (22)
error, tuve que evitar que rsync creara sus archivos temporales en el destino davfs.Creo que lo que sucede es que los nombres de los archivos temporales de rsync comienzan con
.
y davfs no permite esto. Así que fui más allá y le dije a rsync que ignorara los archivos fuente con nombres que comenzaran con.
. Como estoy usando--delete
, también le dije que no intentara eliminar ellost+found
directorio en el destino davfs.fuente