Rclone通过systemd挂载

参考链接

安装Rclone

在Linux上安装rclone可以直接使用默认发行版仓库的版本,也可以官方脚本安装

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

配置Rclone

安装完成了之后通过输入以下指令可以在交互式页面当中添加、修改或删除连接信息

1
rclone config

挂载和关闭挂载

在配置完成之后,如果需要将rclone的内容挂载到本地,执行类似以下格式的指令

1
rclone mount remote_name:path/to/directory path/to/mount_point

其中可以添加以下参数来对本地的文件进行缓存设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
--transfers:该参数控制最大同时传输任务数量,如果你cpu性能差,建议调低,但太低可能会影响多个文档同时传输的速度。
--buffer-size:该参数为读取每个文档时的内存缓冲区大小,控制rclone上传和挂载的时候的内存占用,调低点可以防止内存占用过高而崩溃,但太低可能会影响部分文档的传输速度。
--low-level-retries:该参数为传输文档没速度的时候重试次数,没速度的时候,单个会自动睡眠10ms起,然后再重试,不行,再睡眠更长一段时间,再重试,这样可以稍微加快文档上传进度。

下列参数主要是上传用的
--umask 0000
--default-permissions
--allow-non-empty
--allow-other
--transfers 4
--buffer-size 32M
--low-level-retries 200

如果你还涉及到读取使用,比如使用H5ai等在线播放,就还建议加3个参数,添加格式参考上面
--dir-cache-time 12h
--vfs-read-chunk-size 32M
--vfs-read-chunk-size-limit 1G
1. --vfs-cache-mode off
- 所有文件操作全部直接进行
- 失败无法自动重试
2. --vfs-cache-mode minimal
- 读写模式打开的文件将会首先缓冲到磁盘
- 其他模式打开文件直接进行操作
- 失败无法自动重试
3. --vfs-cache-mode writes
- 读写模式打开的文件将会首先缓冲到磁盘
- 只写模式打开的文件将会首先缓冲到磁盘
- 只读取模式打开的文件将会直接进行操作
- 支持自动重试
4. --vfs-cache-mode full
- 所有文件操作全部缓存
- 读取会下载整个文件

在挂载的时候可以添加--deamon参数来让rclone后台临时挂载,如果要取消挂载则输入以下指令

1
fusermount -u path/to/mount_point

通过systemd自启动挂载

如果需要配置开机自启动挂载对应的Rclone服务,只需要创建以下文件(以onedrive为例,参数和名字可自定义):~/.config/systemd/user/rclone-onedrive.service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[Unit]
Description=OneDrive (rclone)
# 挂载在当前用户的~目录的OneDrive文件夹内,需要提前创建好~/OneDrive
AssertPathIsDirectory=%h/OneDrive 、
# Make sure we have network enabled
After=network.target

[Service]
Type=simple

# 启用vfs模式,将onedrive挂载给/home/xxx/OneDrive文件夹
ExecStart=/usr/bin/rclone mount onedrive:/ OneDrive --vfs-cache-mode full
# 取消挂载
ExecStop=/usr/bin/fusermount -zu %h/OneDrive

# Restart the service whenever rclone exists with non-zero exit code
Restart=on-failure
RestartSec=15

[Install]
# Autostart after reboot
WantedBy=default.target

写入完成之后,通过执行以下两个指令在当前用户下生效该服务

1
2
systemctl --user daemon-reload
systemctl --user enable --now rclone-onedrive

Rclone通过systemd挂载
https://halc.top/p/bbde595d
作者
HalcyonAzure
发布于
2022年6月29日
许可协议