Linux 安装 Rclone 并使用 systemd 自动挂载

什么是 Rclone

Rclone是一个命令行程序,用于管理云存储的文件。它是一个功能丰富的云供应商网络存储界面的替代品。超过40种云存储产品支持Rclone,包括S3对象存储、商业和消费者文件存储服务,以及标准传输协议。

服务器硬盘空间往往较小,而云盘空间比较大。这时可以使用 Rclone 将云盘空间挂载到服务器上,充分利用起来。

安装 Rclone

发行版 Linux 系统使用对应的包管理器即可完成安装。例如我使用 CentOS 的 yum 包管理器安装命令为

yum install rclone
yum install fuse

安装 fuse 是为了等下挂载网盘。

添加盘

rclone config

rclone 添加盘的操作并不难,这里就不再详细写出了。

手动挂载

Rclone 的挂载基本命令为 rclone mount "网盘名称:路径" "本地路径"

rclone mount netdisk1:pathA/pathB /home/netdisk1 \
--buffer-size 32M --transfers 4 \
--vfs-cache-mode full --cache-dir /home/rclone/cache \
--dir-cache-time 2160h --vfs-cache-max-age 2160h \
--vfs-cache-max-size 8192M --vfs-cache-poll-interval 30m \
--umask 000 --no-modtime \
--allow-non-empty --allow-other --allow-root

为什么我的挂载命令这么长? 因为我的挂载命令启用了缓存,这些设置可以根据需要进行修改。

一些参数解释

--allow-non-empty 允许挂载到非空目录
--allow-other 允许其他用户访问 (应该是指非运行 rclone 进程的用户)
--allow-root 允许 root 用户访问
--no-modtime 不读写修改时间 (加快速度)

取消挂载

# 强制取消挂载
/usr/bin/fusermount -u /home/hath/cache
# 安全取消挂载 (会等待现有任务完成)
/usr/bin/fusermount -qzu /home/hath/cache

自动挂载

跟着 rclone 官方文档里的自动挂载研究了半天没整出来,然后就有了现在这个方案...

我使用 systemd 实现自动挂载,因此要创建一个服务。

此处以服务名 rclone-mount.service 为例

编辑 /etc/systemd/system/rclone-mount.service 文件

[Unit]
Description=rclone mount
AssertPathIsDirectory=挂载的本地路径
Wants=network-online.target
After=network-online.target

[Service]
Type=notify
User=root
ExecStart=/usr/bin/rclone mount ...这里替换成你的挂载命令/参数
Restart=on-failure
ExecStop=/usr/bin/fusermount -qzu "挂载的本地路径"

[Install]
WantedBy=multi-user.target

然后就可以使用 systemctl 管理服务了

挂载 systemctl start hentai-cache.service
取消挂载 systemctl stop hentai-cache.service
查看状态 systemctl status hentai-cache.service
自动挂载 systemctl enable hentai-cache.service

本文链接:

https://blog.nkxingxh.top/archives/241/
1 + 2 =
快来做第一个评论的人吧~