RCLONE挂载阿里云盘 - HelloMorningStar/Bring-up-two-miao-miao GitHub Wiki

安装RCLONE原文

部署好Webdav阿里云盘

如果安装docker出现错误,以下可以解决

sudo apt-get remove containerd.io
sudo apt install docker.io docker-compose -y
systemctl start docker
sudo gpasswd -a $USER docker

我们直接使用官网的安装脚本进行安装,更多安装方式可以查看 官网说明

curl https://rclone.org/install.sh | sudo bash

配置RCLONE

安装完成后,配置一个专门连接webdav-server 的配置,详细步骤如下:

输入

rclone config

开始进行配置(注意看注释说明)
root@guaosi:~# rclone config
Current remotes:
 
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
 
e/n/d/r/c/s/q> n # 创建一个新的配置项,回车
 
name> aliyunwebdav # 给新的配置项取个名字,后面使用时都会通过这个名称来区分是使用哪个配置,个人喜好,回车
 
...
39 / Uptobox
   \ "uptobox"
40 / Webdav
   \ "webdav"
41 / Yandex Disk
   \ "yandex"
...
 
Storage> 40 # 使用webdav(这里是不是40取决于rclone版本,反正是使用webdav就对了)
 
Enter a string value. Press Enter for the default ("").
url> http://192.168.137.200:9090 # 填写 webdav server 的地址信息
 
...
 4 / Sharepoint with NTLM authentication, usually self-hosted or on-premises
   \ "sharepoint-ntlm"
 5 / Other site/service or software
   \ "other"
vendor> 5 # 没有阿里云盘,选个其他即可
 
Enter a string value. Press Enter for the default ("").
user> admin # 输入连接 webdav server 的账号
 
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 # 使用设定的密码
 
Enter the password:
password: admin # 输入连接 webdav server 的密码
 
Confirm the password:
password: admin # 再一次确认输入连接 webdav server 的密码
 
Enter a string value. Press Enter for the default ("").
bearer_token> # 没有,直接回车
 
Edit advanced config?
y) Yes
n) No (default)
y/n> # 以上这些信息够了。直接回车
 
--------------------
[aliyunwebdav]
type = webdav
url = http://192.168.137.200:9090
vendor = other
user = admin
pass = *** ENCRYPTED ***
--------------------
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> # 确认无误,直接回车
 
Current remotes:
 
Name                 Type
====                 ====
aliyunwebdav         webdav
 
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q # 配置完成,退出
输入命令
rclone ls aliyunwebdav:/
查看是否会列出网盘下的文件列表,会则表示配置无误了。
RCLONE常用命令

文件上传
# 将本地的 /home/file 文件上传到阿里云盘的 webdav_test 目录下
rclone copy /home/file aliyunwebdav:/webdav_test

文件下载
# 将阿里云盘的 webdav_test 目录加的file文件下载到本地 /home/test/ 目录下
rclone copy aliyunwebdav:/webdav_test/file /home/test/ #

列表
# 展示顶级目录下的所有文件
rclone ls aliyunwebdav:/
 
# 比上面多一个显示上传时间
rclone lsl aliyunwebdav:/ 
 
# 只显示文件夹
rclone lsd aliyunwebdav:/

挂载阿里云盘

上面只是在发送命令来与webdav server 进行交互,如果我们想像在windows 上一样像挂载一块盘进来,可以使用cp ,mv 之类的命令直接进行操作,那应该如何设置呢?

实际上很简单,我们通过rclone自带命令就可以实现盘的挂载
# 创建目录来给阿里云盘挂载
mkdir -p /usr/local/data

rclone mount aliyunwebdav:/data /usr/local/data --cache-dir /tmp --allow-other --vfs-cache-mode writes --allow-non-empty

mkdir -p /usr/local/webdav_test

挂载命令(将云盘挂载到本地指定目录)

rclone mount aliyunwebdav:/webdav_test /usr/local/webdav_test --cache-dir /tmp --allow-other --vfs-cache-mode writes --allow-non-empty

上面命令会将阿里云盘的webdav_test (也可以挂载顶级目录,也就是 /)目录挂载到本地的 /usr/local/webdav_test 目录下。

另外,该命令会阻塞命令窗口,所以另外启动一个窗口进入/usr/local/webdav_test 查看是否能看到云盘里的文件。此外,如果我们关闭了先前执行挂载命令的窗口,那么挂载就会自动解挂退出,并且如果我们想开机时自动进行云盘挂载,也需要重新手动跑命令,不够方便。所以,我们可以借助Linux的systemd 将命令服务化来进行管理。

挂载报错处理: 解决方法: rclone mount报错

报错内容如下: Fatal error: failed to mount FUSE fs: fusermount: exec: "fusermount": executable file not found in $PATH

Centos解决办法: yum install fuse

Debian/Ubuntu解决办法: apt-get install fuse 安装完fuse后,再次执行挂载命令进行挂载

服务化

创建system的service

vim /etc/systemd/system/rclone.service

内容如下

[Unit]
Description=Rclone
After=network-online.target
[Service]
Type=simple
ExecStart=rclone mount aliyunwebdav:/webdav_test /usr/local/webdav_test --cache-dir /tmp --allow-other --vfs-cache-mode writes --allow-non-empty
Restart=on-abort
User=root
[Install]
WantedBy=default.target

保存退出后,启动服务

systemctl start rclone

设置开机启动

systemctl enable rclone

其它操作命令

# 重启
systemctl restart rclone
 
# 停止
systemctl stop rclone
 
# 状态
systemctl status rclone

⚠️ **GitHub.com Fallback** ⚠️