¿Alguna secuencia de comandos o herramienta de línea de comandos que me permita sincronizar una carpeta local con webdav?

¿Alguna secuencia de comandos o herramienta de línea de comandos que me permita sincronizar una carpeta local con webdav?

Tengo una carpeta local que quiero sincronizar con un servidor webdav. Hay muchos archivos en mi carpeta y los necesitaría después de editar algunos archivos o agregar/eliminar carpetas para poder sincronizar los cambios con el servidor webdav ignorando lo que hay en el servidor y usando siempre mis archivos. ¿Existe algún script o herramienta que pueda usar desde la línea de comandos para hacer eso?

Y montar el recurso no es una solución.

Respuesta1

WebDav-sync es un programa java diseñado para este propósito.http://www.re.be/webdav_sync/index.xhtml

Respuesta2

mkdir /volumes/web_dav/
mount_webdav -s -i https://<web_dav_domain_name:port>/ /volumes/web_dav/

rsync -rvz /your_directory/ /volumes/web_dav/

umount /volumes/web_dav/

Respuesta3

El uso de rsync en una unidad webdav montada puede perder su eficiencia de respaldo incremental. El algoritmo de suma de comprobación en rsync hace que los archivos remotos (completos o parciales) se descarguen y almacenen localmente, lo que puede desperdiciar ancho de banda de descarga.

Una solución no perfecta es utilizar la bandera "--size-only" para guardar bw:

rsync -ahvP --size-only /your/source/path /your/webdav_mount/path/

No funcionará si los archivos se actualizan pero aún tienen el mismo tamaño.

Respuesta4

Parece que una solución rápida para realizar dicha sincronización unidireccional es reutilizar y modificar el script que propuse como respuesta.aquísimplemente agregando algo como test -d "$src" && echo "rmcol \"$src\"";justo después de la línea con un solo corchete de apertura.

Tenga en cuenta que esto implica retransmitir todo el contenido cada vez, así que utilícelo sólo para directorios "pequeños"; de lo contrario, la solución recurriendo al montaje y uso rsyncsería mucho más adecuada.

información relacionada