WebDav 折腾「其二」之 rclone

吐槽/反馈/建议:我的咸鱼心  爱发电-@wdssmq  FeedsPub-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 安装

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

wget https://downloads.rclone.org/v1.63.1/rclone-v1.62.2-linux-amd64.zip
unzip rclone-v1.62.2-linux-amd64.zip
cd rclone-v1.62.2-linux-amd64
# 复制到 /usr/local/bin/
cp rclone /usr/local/bin/
# 添加执行权限
chmod +x /usr/local/bin/rclone

rclone 配置

# 执行命令后,根据提示进行配置
rclone config

# 2023/05/24 12:29:07 NOTICE: Config file "/root/.config/rclone/rclone.conf" not found - using defaults
# No remotes found, make a new one?
# n) New remote
# s) Set configuration password
# q) Quit config
# n/s/q> n

# ↑ 新建一个 remote
# -----------------

# Enter name for new remote.
# name> Terdav

# ↑ 输入 remote 名称
# -----------------

# Option Storage.
# Type of storage to configure.
# Choose a number from below, or type in your own value.
# Storage> 46

# ↑ 这一步会给出 OneDrive,Dropbox 等网盘的选项,这里选择 46,即 WebDav
# -----------------

# Option url.
# URL of http host to connect to.
# E.g. https://example.com.
# Enter a value.
# url> https://lsv.teracloud.jp/dav/

# ↑ 输入 WebDav 的地址,这里是 InfiniCLOUD 的地址
# -----------------

# Option vendor.
# Name of the WebDAV site/service/software you are using.
# Choose a number from below, or type in your own value.
# Press Enter to leave empty.
# vendor> 5

# ↑ 这一步会给出一些 WebDav 的选项,这里选择 5,即 Other site/service or software

# Option user.
# User name.
# In case NTLM authentication is used, the username should be in the format 'Domain\User'.
# Enter a value. Press Enter to leave empty.
# user> username

# ↑ 输入用户名
# -----------------

# Option pass.
# Password.
# Choose an alternative below. Press Enter for the default (n).
# y) Yes, type in my own password
# g) Generate random password
# n) No, leave this optional password blank (default)
# y/g/n> y

# ↑ 是否需要密码,这里选择 y
# -----------------

# Enter the password:
# password: passwordpassword

# ↑ 输入密码
# -----------------

# Option bearer_token.
# Bearer token instead of user/pass (e.g. a Macaroon).
# Enter a value. Press Enter to leave empty.
# bearer_token>

# ↑ 这里直接回车,鉴权方式不是 Bearer Token
# -----------------

# Edit advanced config?
# y) Yes
# n) No (default)
# y/n> n

# ↑ 是否编辑高级配置,这里选择 n
# -----------------

# Configuration complete.
# Options:
# - type: webdav
# - url: https://lsv.teracloud.jp/dav/
# - vendor: other
# - user: wdmbts
# - pass: *** ENCRYPTED ***
# Keep this "Terdav" remote?
# y) Yes this is OK (default)
# e) Edit this remote
# d) Delete this remote
# y/e/d> y

# ↑ 会输出配置信息供确认
# -----------------

rclone 使用

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

# 列出远程的顶级目录
rclone lsd Terdav:

# 列出全部文件
rclone ls Terdav:

mkdir ~/tmp/rclone-test
# 写入 Hello World 及格式化的时间到文件 2023-08-28T16:39:51+08:00
echo "Hello World $(date --rfc-3339=seconds)" > ~/tmp/rclone-test/for-test.txt
# 上传本地文件夹到远程,表示路径的参数交换则是下载
rclone copy -P ~/tmp/rclone-test Terdav:rclone-test

# 注:-P / --progress 标志会显示传输进度

# -------------------------------------

# ----------------
# 重要: rclone sync 是单向同步,会删除「只存在于目标端」的文件;
# 重要: rclone sync 是单向同步,会删除「只存在于目标端」的文件;
# ----------------

mkdir ~/tmp/rclone-sync

# 同步本地文件夹到远程,--interactive 表示交互式同步,对每个要处理的文件进行提示
echo "Hello World $(date --rfc-3339=seconds)" > ~/tmp/rclone-sync/for-sync.txt
rclone sync --interactive -P ~/tmp/rclone-sync Terdav:rclone-sync

# 同步本地文件夹到远程,--dry-run 表示模拟运行
echo "Hello World $(date --rfc-3339=seconds)" > ~/tmp/rclone-sync/for-sync.txt
rclone sync --dry-run -P ~/tmp/rclone-sync Terdav:rclone-sync

# 注:可以使用 --exclude _gsdata_/** 排除 GoodSync 生成的 _gsdata_ 文件夹

# -------------------------------------

# 双向同步功能目前仍为「实验性」
mkdir ~/tmp/rclone-sync

# 结论:在 WebDav 场景下确实没法用的样子?会提示  modification time support is missing
echo "Hello World $(date --rfc-3339=seconds)" > ~/tmp/rclone-sync/for-sync.txt
rclone bisync -P --resync ~/tmp/rclone-sync Terdav:rclone-sync --exclude _gsdata_/**

# 两个本地文件夹测试
mkdir ~/tmp/rclone-sync-2
# -1, --resync 用于初始化同步,两边的文件都会被同步到对方
rclone bisync -P --resync ~/tmp/rclone-sync ~/tmp/rclone-sync-2 --exclude _gsdata_/**

# 仅同步距离上次同步后修改的文件
echo "Hello World $(date --rfc-3339=seconds)" > ~/tmp/rclone-sync/for-sync.txt
rclone bisync -P ~/tmp/rclone-sync ~/tmp/rclone-sync-2 --exclude _gsdata_/**

# 注:--remove-empty-dirs 参数用于清理空文件夹


rclone 挂载

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

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

# 安装 fuse ,系统为 Debian
apt install fuse
# Fatal error: failed to mount FUSE fs: fusermount: exec: "fusermount3": executable file not found in $PATH

# 好像用的机子环境比较特殊,
mknod -m 666 /dev/fuse c 10 229
# update-rc.d -f udev disable
# mount helper error: fusermount3: fuse device not found, try 'modprobe fuse' first

二、挂载

# 创建一个挂载点,保持为空文件夹
mkdir -p ~/tmp/rclone-mount

# 挂载,--daemon 表示后台运行(守护进程),仅在 Linux 下有效
rclone mount Terdav:rclone-mount ~/tmp/rclone-mount --daemon

# 直接写入文件
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
以前还有广告版的。
回复
发表评论:

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

网站分类

搜索

本周旧文

2024 年了,姑且备份下嘟特存档。。

……,一个不知名的小众样式库 + 内联样式混写这种入坑姿势确实很有槽点,但是,「已经开始学」并且能够持续是绝对值得肯定的。。

在贴吧看过很多提问了,就有种错觉:好多人为了提一个问题专门注册了贴吧,问题本身可能得到有效回答,也可能没有(和提问的点及具体姿势有关。。但无论如何,之后就和注销了账号一样没有然后了,好像之后永远不用学相应的东西一样。。

《恶魔娃娃》

- 他们正研究你究竟是真正的大人,还是伪装成大人的小孩

- 我自己都研究很久了

乐高 DC 里,(基本就蝙蝠侠家,,年龄最小的那个无论是谁感觉人设都会变得一样 - -

所以,就感觉和祥林嫂一样,每天都需要向外「签到」自己的情绪感受,然而又并没有什么「需要」我这样的签到……

只要梦里出现学校的概念,形式和反抗好像也都不重要了,,天还没亮,骑自行车去上学,没走多远「想起来」并不需要上学的,下来搬起车原地调头然后推回家。。

《K 星异客》里,「青鸟」真的是等来的,或者说是突然出现然后引发改变的外部因素。。。

梦的最后也是又一次意识到教室里的同学只是幻境中的投影,被困住的只有我;虽然也终于总结出,在梦里从来没有和同学的投影有过冲突和争执,甚至还附和我反驳「管理者」身份被进一步放大并不特指某一个人的老师。。

就和大脑会突然播放某一首歌一样,「讨厌自己」这句话也是自己突然就会播放一次,然后频率更高。。

学校,学校,学校,总是梦到学校,,就好像灵魂被诅咒禁固一样。。

爱发电支持者

最新留言

友情链接

  • 订阅本站的 RSS 2.0 新闻聚合
召唤伊斯特瓦尔