我有一个本地文件夹,我想将其与 webdav 服务器同步。我的文件夹中有很多文件,我需要在编辑一些文件或添加/删除文件夹后将更改同步到 webdav 服务器,而忽略服务器上的内容并始终使用我的文件。是否有任何脚本或工具可以从命令行执行此操作?
安装资源并不是解决方案。
答案1
WebDav-sync 是一个为此目的而设计的 Java 程序。http://www.re.be/webdav_sync/index.xhtml
答案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/
答案3
在已挂载的 webdav 驱动器上使用 rsync 可能会失去其增量备份效率。rsync 上的校验和算法使远程文件(全部或部分)下载并存储在本地,然后可能会浪费下载带宽。
一个不完美的解决方案是使用标志“--size-only”来保存bw:
rsync -ahvP --size-only /your/source/path /your/webdav_mount/path/
如果文件随后更新但仍然具有相同的大小,则它将不起作用。
答案4
似乎执行这种单向同步的快速解决方案是重新使用和修改我作为答案提出的脚本这里只需test -d "$src" && echo "rmcol \"$src\"";
在该行后面添加一个带有左括号的内容即可。
请注意,这涉及每次重新传输所有内容,因此仅将其用于“小”目录;否则,诉诸安装和使用的解决方案rsync
会更合适。