在与 webdav 同步期间,我得到了多个 rsync

Posted

技术标签:

【中文标题】在与 webdav 同步期间,我得到了多个 rsync【英文标题】:I got multiple rsync during a sync against webdav 【发布时间】:2017-12-06 20:44:24 【问题描述】:

我无法将文件夹与客户端上已安装的 webdav(由 owncloud 提供)同步。

首先我把webdav文件夹挂载到/company/webdav,这样很好,可以浏览这个目录。

mount -t davfs https://webdav.company.com/remote.php/webdav /company/webdav

在此之后,我运行此命令将视频文件夹同步到我的本地树莓

rsync -av --delete-after --progress --partial --stats /company/webdav/Video/ /companylocal/video

它似乎适用于小文件 (

root@pi:/companylocal/video# ls -al total 1270300 drwxr-xr-x 2 root 根 4096 12 月 6 日 16:03。 drwxr-xr-x 9 根 4096 12 月 6 日 15:45 .. -rw------- 1 根 159383552 12 月 6 日 16:03 .Backstage_+_FWB_Show.mp4.cL5tVu -rw------- 1 根 595591168 12 月 6 日 15:54 .Backstage_+_FWB_Show.mp4.hfti8J -rw------- 1 根 159383552 12 月 6 日 16:03 .Backstage_+_FWB_Show.mp4.JB0tfu -rw------- 1 根 159383552 12 月 6 日 16:03 .Backstage_+_FWB_Show.mp4.odvZEr -rw------- 1 根 159383552 12 月 6 日 16:03 .Backstage_+_FWB_Show.mp4.pM5wCu -rw------- 1 root root 67633152 Dec 6 16:03 .Backstage_+_FWB_Show.mp4.WRljSA

也只有一个文件需要同步,但是 rsync 正在获得更多的进程

root@pi:/companylocal/video# top 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
  975 davfs2    20   0   41524   4916   4088 D   2.6  0.5   2:24.78 mount.davfs
  985 root      20   0    5064   1532   1040 S   2.3  0.2   0:04.68 rsync
 1320 root      20   0    5064   1568   1072 S   2.3  0.2   0:04.71 rsync
 1322 root      20   0    5064   1540   1040 S   2.3  0.2   0:04.63 rsync
 1352 root      20   0    5064   1540   1044 S   2.3  0.2   0:04.09 rsync
  977 root      20   0    5092   2616   2112 D   2.0  0.3   0:03.70 rsync
 1314 root      20   0    5092   2608   2108 D   2.0  0.3   0:03.69 rsync
 1349 root      20   0    5092   2596   2092 S   2.0  0.3   0:03.37 rsync
 1423 root      20   0    5092   2476   2036 S   2.0  0.3   0:00.52 rsync
 1425 root      20   0    5064   1616   1132 S   2.0  0.2   0:00.46 rsync

我不明白为什么会发生这种情况。

问题是:如果 rsync 尝试并行同步同一个文件,带宽使用率很高,而且存储会在几分钟后满。该文件只有 2GB,10 个文件 x 2 GB = 20GB 会占用我的磁盘空间。

这是组合(通过 owncloud-webdav 的大文件)和 rsync 的问题吗? 我应该通过 Apache 使用本机 webdav 吗?还是我的 rsync 命令只有一个错误?

【问题讨论】:

【参考方案1】:

看起来rsync 正在从您安装 dav 的 FS 中获取文件块,但它缺少其他客户端在下载后会执行的最后一个重新组装步骤(因为它是一个通用同步引擎使其不知道服务器详细信息)。按顺序手动附加所有这些块应该在原始文件上产生。

但这是一个疯狂的手工工作量。我建议您改用owncloudcmd,因为它知道服务器功能并且可以做到这一点。

另外,为了限制rsync 使用的带宽,您可以翻转--bwlimit=<kb/second> 参数来控制它不会占用您所有的网络速度。 owncloudcmd 的等效标志在即将发布的 2.4 版本中可用:https://github.com/owncloud/client/pull/5707

【讨论】:

以上是关于在与 webdav 同步期间,我得到了多个 rsync的主要内容,如果未能解决你的问题,请参考以下文章

jdk1.6下使用sardine和jackrabbit-webdav的问题

安卓zoo for zotero && WebDAV 自动同步论文笔记

jdk1.6下使用sardine和jackrabbit-webdav的问题

怎么搭建自己的WebDav服务

SilentNotes – 尊重隐私的开源便签,支持 WebDAV 同步加密[Win/Android]

如何在与 agora RTC WEB 视频聊天期间发送消息(呼叫反应)