davfs连接WebDav常见问题
(超级重要)阿里云盘通过 rsync 传输失败
问题一:无法复制到云盘目录
在前面装好 alist 且通过 davfs 连接 WebDAV 完成后,以为一切顺风顺水来着。
因为自己测试了几个小文件复制都能正常上传。
直到备份 docker 大文件有2.7G左右的时候,一直复制不成功
最开始是发现使用 rsync 将压缩文件发送到相应位置时,总提示IO异常,是因为内存问题,排查发现是系统硬盘不够,他在传送时会先放到 /var/cache/davfs2 目录下,几次不成功以后,就一直缓存下来,直至把硬盘内存占满!这是之后使用文件查询工具一步步才排查出来!
系统硬盘占用率过高,通过 以下 命令针对每个文件见查询发现的
1 | du -sh /var/cache/davfs2/* |sort -nr |
锁定问题就好办,其实可以直接清除,不过后边做了软链接,将这个地址指向外接硬盘上来了
1 | 命令:ln -s /path/to/original_file /path/to/symlink |
注:这两个linux方法后边再开新的一篇
问题二:无法上传到云盘内
上边问题解决了以后,以为可以顺利备份了,谁知道文件复制到云盘文件夹以后却不上传到云端,开始以为是 WebDAV 的问题,查了好多地方也没找到解决办法,然后又怀疑起了 alist 的问题,认为是没有开启大文件导致,但压根就没找到地方。
搜索一圈都没找到解决方案,也在快要放弃时看到了几篇文章,才找到问题根源。
1.付费求alist百度网盘rclone挂载webdav可上传大文件方案
这个还特地下载了 rclone 来尝试,其实只是解决了问题一,就是能正常复制到云盘文件夹
1 | rclone sync '/mnt/aaaa' 'baidu:/bbbbb' --buffer-size=256M --use-mmap -v --transfers 1 --timeout 60m |
这个办法虽然没有解决这个问题,但从评论看知道了超时没多大作用,也就是说问题不在这儿。
2.(根据这个解决了问题)阿里云盘通过 rsync 传输失败
从这个问题描述来看,基本跟目前遇到的问题一模一样
以下就是给出的解决方案,经过验证,完全可行:
从中可以看出来真正的问题出在了 davfs2 上,折腾一圈这才是问题关键!
- 这依然为客户端超时取消了上传。请使用支持设置超时时间的客户端并设置超时时间。rsync并不是客户端 davfs2才是
解决方法:调整 davfs2 配置参数 read_timeout 从默认的30 (seconds) 为7200之后,确实可以上传成功。
该文件位置为:
1 | /etc/davfs2/davfs2.conf |
相关链接(侵删)
欢迎到公众号来唠嗑:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 赵逸尘个人博客!