在与 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的问题