Qualquer script ou ferramenta de linha de comando que me permita sincronizar uma pasta local com o webdav?

Qualquer script ou ferramenta de linha de comando que me permita sincronizar uma pasta local com o webdav?

Tenho uma pasta local que desejo sincronizar com um servidor webdav. Há muitos arquivos na minha pasta e eu precisaria disso depois de editar alguns arquivos ou adicionar/remover pasta para poder sincronizar as alterações com o servidor webdav ignorando o que está no servidor e sempre usando meus arquivos. Existe algum script ou ferramenta que eu possa usar na linha de comando para fazer isso?

E montar o recurso não é solução.

Responder1

WebDav-sync é um programa java desenvolvido para essa finalidade.http://www.re.be/webdav_sync/index.xhtml

Responder2

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/

Responder3

Usar o rsync em uma unidade webdav montada pode perder sua eficiência de backup incremental. O algoritmo de soma de verificação no rsync faz com que arquivos remotos (completos ou parciais) sejam baixados e armazenados localmente, podendo desperdiçar largura de banda de download.

Uma solução não perfeita é usar o sinalizador "--size-only" para salvar bw:

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

Não funcionará se os arquivos forem atualizados, mas ainda tiverem os mesmos tamanhos.

Responder4

Parece que uma solução rápida para realizar essa sincronização unidirecional é reutilizar e modificar o script que propus como respostaaquiapenas adicionando algo como test -d "$src" && echo "rmcol \"$src\"";logo após a linha com um único colchete de abertura.

Observe que isso envolve retransmitir todo o conteúdo de cada vez, portanto use-o apenas para diretórios "pequenos"; caso contrário, a solução que recorre à montagem e utilização rsyncseria muito mais adequada.

informação relacionada