任何允许我将本地文件夹与webdav同步的脚本或命令行工具?


0

我有一个本地文件夹,我想与webdav服务器同步。我的文件夹中有很多文件,我需要在编辑一些文件或添加/删除文件夹之后才能将更改同步到webdav服务器,忽略它在服务器上的内容并始终使用我的文件。是否有任何脚本或工具可以从命令行使用它来执行此操作?

安装资源不是解决方案。


您对哪个操作系统感兴趣?

我在MacOS X上,所以基于* nix。我知道卷曲,或cadavre,但我无法fid方式,所以同步整个文件夹。我一次只能上传/删除1个文件。
daniels

并且你不想从WebDAV网址安装任何东西......坚韧...... :)

是的,安装不是一种选择。因为如果我挂载我需要在2个不同的地方有2个相同文件的副本并同步它们。
daniels

也许我错了,但安装并不意味着复制,只是链接到WebDAV文件夹,你在装载文件夹上看到的一切都是服务器上的内容。例如,您执行的每个列表都将发送到服务器以进行解析。因此,您只需要将已安装的文件夹与磁盘上的副本文件夹同步...这很容易...谷歌它。

Answers:



2
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/

1

在已安装的webdav驱动器上使用rsync可能会失去其增量备份效率。rsync上的校验和算法使远程文件(完整或部分)在本地下载和存储,然后可能浪费下载带宽。

一个不完美的解决方案是使用标志“--size-only”来保存bw:

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

如果文件随后更新但仍具有相同的大小,则无效。


0

看来,一个快速的解决方案来执行这样的单向同步,是重新使用和修改我建议作为答案脚本这里只需添加类似test -d "$src" && echo "rmcol \"$src\"";与单开括号行之后。

请注意,这涉及每次重新传输所有内容,因此仅将其用于“小”目录; 否则,采用安装和使用的解决方案rsync会更合适。


0

Rclone是一种支持WebDAV和许多其他存储后端的单向同步程序。它可以满足您的需求:比较本地和远程(WebDAV或其他)位置,它只会复制更改的文件,就像rsync通过SFTP / SCP一样。它有一些命令行选项来控制同步行为,例如,是否要在远程文件本地消失时删除它们。

它适用于OSX,Windows和Linux。


请阅读如何在答案中推荐软件,特别是粗体位; 然后编辑你的答案,遵循那里的指导方针。谢谢!:)
bertieb

@bertieb谢谢!我编辑了我的答案。我希望现在更容易接受。如果仍有任何改进,请告诉我。
Onnonymous
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.