WebDav 折腾「其二」之 rclone

吐槽/反馈/建议:我的咸鱼心  爱发电-@wdssmq

前言

离上一篇已经 3 个月了,简单说就是买了台 NAT 的 VPS,然后在如何利用这个问题上考虑了下对接网盘 WebDav 这个方向,虽然折腾是折腾,实际折腾完也没有然后了……

VPS 服务商的推广链接:iHostART - 记得密码一定要随机生成

网盘链接:https://infini-cloud.net/ 推荐码:L2M3H

查看同系列的其他文章 ——

WebDav_沉冰浮水:https://www.wdssmq.com/tag/WebDav/

rclone

Rclone:

https://rclone.org/

rclone 安装

  1. # rclone
  2. VERSION=v1.63.1
  3. mkdir -p ~/tmp/rclone && cd ~/tmp/rclone
  4. wget https://downloads.rclone.org/${VERSION}/rclone-${VERSION}-linux-amd64.zip
  5. unzip rclone-${VERSION}-linux-amd64.zip
  6. cd rclone-${VERSION}-linux-amd64
  7. # 复制到 /usr/local/bin/
  8. cp rclone /usr/local/bin/
  9. # 添加执行权限
  10. chmod +x /usr/local/bin/rclone

rclone 配置

  1. # 执行命令后,根据提示进行配置
  2. rclone config
  3. # 2023/05/24 12:29:07 NOTICE: Config file "/root/.config/rclone/rclone.conf" not found - using defaults
  4. # No remotes found, make a new one?
  5. # n) New remote
  6. # s) Set configuration password
  7. # q) Quit config
  8. # n/s/q> n
  9. echo 新建一个 remote
  10. # -----------------
  11. # Enter name for new remote.
  12. # name> Terdav
  13. echo 输入 remote 名称
  14. # -----------------
  15. # Option Storage.
  16. # Type of storage to configure.
  17. # Choose a number from below, or type in your own value.
  18. # Storage> 46
  19. echo 这一步会给出 OneDriveDropbox 等网盘的选项,这里选择 WebDav,具体序号以实际为准
  20. # -----------------
  21. # Option url.
  22. # URL of http host to connect to.
  23. # E.g. https://example.com.
  24. # Enter a value.
  25. # url> https://lsv.teracloud.jp/dav/
  26. echo 输入 WebDav 的地址,这里是 InfiniCLOUD 的地址
  27. # -----------------
  28. # Option vendor.
  29. # Name of the WebDAV site/service/software you are using.
  30. # Choose a number from below, or type in your own value.
  31. # Press Enter to leave empty.
  32. # vendor> 5
  33. echo 这一步会给出一些 WebDav 的选项,这里选择 5,即 Other site/service or software
  34. # Option user.
  35. # User name.
  36. # In case NTLM authentication is used, the username should be in the format 'Domain\User'.
  37. # Enter a value. Press Enter to leave empty.
  38. # user> username
  39. echo 输入用户名
  40. # -----------------
  41. # Option pass.
  42. # Password.
  43. # Choose an alternative below. Press Enter for the default (n).
  44. # y) Yes, type in my own password
  45. # g) Generate random password
  46. # n) No, leave this optional password blank (default)
  47. # y/g/n> y
  48. echo 是否需要密码,这里选择 y
  49. # -----------------
  50. # Enter the password:
  51. # password: passwordpassword
  52. echo 输入密码
  53. # -----------------
  54. # Option bearer_token.
  55. # Bearer token instead of user/pass (e.g. a Macaroon).
  56. # Enter a value. Press Enter to leave empty.
  57. # bearer_token>
  58. echo 这里直接回车,鉴权方式不是 Bearer Token
  59. # -----------------
  60. # Edit advanced config?
  61. # y) Yes
  62. # n) No (default)
  63. # y/n> n
  64. echo 是否编辑高级配置,这里选择 n
  65. # -----------------
  66. # Configuration complete.
  67. # Options:
  68. # - type: webdav
  69. # - url: https://lsv.teracloud.jp/dav/
  70. # - vendor: other
  71. # - user: wdmbts
  72. # - pass: *** ENCRYPTED ***
  73. # Keep this "Terdav" remote?
  74. # y) Yes this is OK (default)
  75. # e) Edit this remote
  76. # d) Delete this remote
  77. # y/e/d> y
  78. echo 会输出配置信息供确认
  79. # -----------------

rclone 使用

注:Terdav 是上一步配置的 remote 名称

  1. # 列出远程的顶级目录
  2. rclone lsd Terdav:
  3. # 列出全部文件
  4. rclone ls Terdav:
  5. mkdir ~/tmp/rclone-test
  6. # 写入 Hello World 及格式化的时间到文件 2023-08-28T16:39:51+08:00
  7. echo "Hello World $(date --rfc-3339=seconds)" > ~/tmp/rclone-test/for-test.txt
  8. # 上传本地文件夹到远程,表示路径的参数交换则是下载
  9. rclone copy -P ~/tmp/rclone-test Terdav:rclone-test
  10. # 注:-P / --progress 标志会显示传输进度
  11. # -------------------------------------
  12. # ----------------
  13. # 重要: rclone sync 是单向同步,会删除「只存在于目标端」的文件;
  14. # 重要: rclone sync 是单向同步,会删除「只存在于目标端」的文件;
  15. # ----------------
  16. mkdir ~/tmp/rclone-sync
  17. # 同步本地文件夹到远程,--interactive 表示交互式同步,对每个要处理的文件进行提示
  18. echo "Hello World $(date --rfc-3339=seconds)" > ~/tmp/rclone-sync/for-sync.txt
  19. rclone sync --interactive -P ~/tmp/rclone-sync Terdav:rclone-sync
  20. # 同步本地文件夹到远程,--dry-run 表示模拟运行
  21. echo "Hello World $(date --rfc-3339=seconds)" > ~/tmp/rclone-sync/for-sync.txt
  22. rclone sync --dry-run -P ~/tmp/rclone-sync Terdav:rclone-sync
  23. # 注:可以使用 --exclude _gsdata_/** 排除 GoodSync 生成的 _gsdata_ 文件夹
  24. # -------------------------------------
  25. # 双向同步功能目前仍为「实验性」
  26. mkdir ~/tmp/rclone-sync
  27. # 结论:在 WebDav 场景下确实没法用的样子?会提示 modification time support is missing
  28. echo "Hello World $(date --rfc-3339=seconds)" > ~/tmp/rclone-sync/for-sync.txt
  29. rclone bisync -P --resync ~/tmp/rclone-sync Terdav:rclone-sync --exclude _gsdata_/**
  30. # 两个本地文件夹测试
  31. mkdir ~/tmp/rclone-sync-2
  32. # -1, --resync 用于初始化同步,两边的文件都会被同步到对方
  33. rclone bisync -P --resync ~/tmp/rclone-sync ~/tmp/rclone-sync-2 --exclude _gsdata_/**
  34. # 仅同步距离上次同步后修改的文件
  35. echo "Hello World $(date --rfc-3339=seconds)" > ~/tmp/rclone-sync/for-sync.txt
  36. rclone bisync -P ~/tmp/rclone-sync ~/tmp/rclone-sync-2 --exclude _gsdata_/**
  37. # 注:--remove-empty-dirs 参数用于清理空文件夹

rclone 挂载

好像可以将远程 WebDav 挂载到本地;

一、首先过程中遇到一些报错及解决方法:

  1. # 安装 fuse ,系统为 Debian
  2. apt install fuse
  3. # Fatal error: failed to mount FUSE fs: fusermount: exec: "fusermount3": executable file not found in $PATH
  4. # 好像用的机子环境比较特殊,
  5. mknod -m 666 /dev/fuse c 10 229
  6. # update-rc.d -f udev disable
  7. # mount helper error: fusermount3: fuse device not found, try 'modprobe fuse' first

二、挂载

  1. # 创建一个挂载点,保持为空文件夹
  2. mkdir -p ~/tmp/rclone-mount
  3. # 挂载,--daemon 表示后台运行(守护进程),仅在 Linux 下有效
  4. rclone mount Terdav:rclone-mount ~/tmp/rclone-mount --daemon
  5. # 直接写入文件
  6. echo "Hello World $(date --rfc-3339=seconds)" > ~/tmp/rclone-mount/for-mount.txt

三、重启后自动挂载

占位

结语

最理想的使用还是双向同步,然而并不能用;

GoodSync 到是可以用,然而是收费的,虽然之前不知道为什么领到了一年的免费授权……

所以下一篇将会介绍一下 GoodSync 在 Linux 下的使用。


爱发电

本文标题:《WebDav 折腾「其二」之 rclone》作者:沉冰浮水
原文链接:https://www.wdssmq.com/post/20100203443.html
特别注明外均为原创,转载请注明。

分享到微信

扫描二维码

可在微信查看或分享至朋友圈。

相关文章

囧啊囧 囧啊囧 发布于 2010-10-16 22:41:11  
#cmt72
以前还有广告版的。
回复
发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

网站分类

  • 订阅本站的 RSS 2.0 新闻聚合

搜索

本周旧文

nuc 四个口插硬盘都识别不到,有亮灯。。最后试出别插到底。。

绿联的硬盘盒。。另外一个联想的没问题。。

近期观影记录:超级马里奥,死侍与金刚狼。。

搬家也告一段落,虽然搬过来的东西还得归置,新衣柜虽说已经散俩月味儿了,但还是不想放衣服进去。

要不我每年汇总整理一次??碎雨集_沉冰浮水_第1页

所以,不带这条的话,2024 年目前只发了 13 条嘟????

VSCode 内 git 操作卡住的时候没办法主动取消一直是个痛点,一般都是推送或拉取,今天连提交都卡了。。

又一个夏天过去了,所以今年也没买防水鞋套;然后天凉了,为了应对踢被子买了睡袋,不知道 1.2 米会不会略窄。。

《五至七时的克莱奥》,2018 年 6 月加入列表,21 年 11 月底发现 B 站上线了这部,直到前几天才看完,还是分两次看的。。接下来有五项是 2019 年的,都是电影 —— 略长的待办列表。。

有用程序自动抓取自己带 tag 的嘟,然后按年备份后从线上删除;刚发现去年的数据有备份但是没删线上??和本地数据对比后发现线上的还少一条,Why??

本质上,每个人需要的是「让自己面临的问题得到解决」的能力。。

这又涉及到直接能力和间接能力,,缺乏直接能力很正常,视情况可以通过学习来掌握直接能力,或者「请」有直接能力的人来帮自己解决。。

缺乏间接能力的情况是真没救,尤其是对「这是**我自己**面临的问题」这一前提没有明确认知的人。。

最新留言

友情链接

手机扫码查看