快轉到主要內容

如何在Linux 上使用RCLONE 並設定開機自動掛載

·字數:1592 字

在雲端儲存普及的今天,Google Drive、Dropbox、OneDrive 等服務早已成為日常備份與同步的重要工具。而 Rclone 可說是 Linux 世界中「雲端同步的神兵利器」。 Rclone 不僅支援 70 種左右的雲端服務與協議,還能透過 FUSE 將雲端硬碟「掛載」到本地端,讓你可以像操作一般資料夾一樣直接存取雲端檔案。 本篇將從 安裝 Rclone建立設定檔,一路帶你完成 systemd 開機自動掛載 的設定,並分別說明 Debian / Red Hat / Arch 三大主流發行版的差異。

RCLONE logo

1.安裝 Rclone 與 FUSE
#

Rclone 官方提供一鍵安裝腳本,但自動掛載一定會用到 FUSE。即使你使用安裝腳本,仍然需要額外確認 FUSE 是否已安裝,因此我比較推薦直接使用套件管理員

1.1 使用安裝腳本
#

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

1.2 使用套件管理員安裝
#

Debian / Ubuntu:

sudo apt update

sudo apt install rclone fuse

Red Hat / Fedora:

sudo dnf install rclone fuse

Arch Linux:

sudo pacman -S rclone fuse3

2.建立 Rclone 設定檔
#

安裝完成後,需要建立設定檔來告訴 Rclone:

  • 使用哪一種雲端服務或協議
  • 帳號驗證方式 執行以下指令:
rclone config

流程如下(我以 WebDAV 為例):

  1. 輸入 n(New remote)
  2. 為遠端命名(例如 webdav
  3. 在服務清單中輸入 59(WebDAV)
  4. 輸入 WebDAV 伺服器網址(例:https://example.com/dav
  5. 供應商選項:
  • 若你的服務不在清單中,選擇 8(Other)
    服務清單
  1. 輸入帳號
  2. 輸入 y 並設定密碼(會加密保存)
  3. bearer_token 可以直接 Enter 跳過
  4. 進階設定也可以直接Enter
  5. 確認後設定Enter
  6. 輸入 q 離開

其他雲端(Google Drive、OneDrive 等)流程類似,只是驗證方式不同。

3.手動掛載測試
#

在設定自動掛載前,我們先測試手動掛載是否正常

3.1 建立掛載點
#

mkdir -p {目標掛載點}

3.2 執行掛載
#

rclone mount {你剛剛設定的名字}: {目標掛載點} --vfs-cache-mode full

成功後,進入該目錄應該可以看到雲端檔案。

3.3 卸載
#

  • 在原終端機按下 Ctrl + C
  • 或於另一個終端機執行:
fusermount3 -u /home/使用者名稱/rclone

4.設定 systemd 開機自動掛載
#

4.1 建立 systemd 服務檔
#

使用你喜歡的編輯器打開/etc/systemd/system/rclone.service

sudo nano /etc/systemd/system/rclone.service

以下是我個人使用的配置,你可以參考並按需修改

注意:systemd不支援在路經中使用,請填寫完整路徑

[Unit]  
Description=Rclone WebDAV Mount  
Documentation=http://rclone.org/docs/  
After=network-online.target  
Wants=network-online.target  
  
[Service]  
User={使用者名稱}
Group={使用者名稱}  
  
Type=notify  
# rclone.conf 路徑(通常在/home/{使用者名稱}/.config/rclone/rclone.conf)
Environment=RCLONE_CONFIG={修改為rclone.conf 路徑}  
  
ExecStart=/usr/bin/rclone mount {遠端名稱}: {目標掛載點} \  
--allow-other \  
--vfs-cache-mode full \  
--cache-dir /tmp/rclone-cache \  
--buffer-size 64M \  
--vfs-read-ahead 1G \  
--no-modtime \  
--no-gzip-encoding \  
--umask 000 \  
--log-file /tmp/rclone.log \  
--log-level INFO  
  
# 卸載路徑
ExecStop=/bin/fusermount3 -u {目標掛載點}  
  
Restart=on-failure  
RestartSec=10  
RestartPreventExitStatus=21  
  
[Install]  
WantedBy=multi-user.target

4.2 vfs-cache-mode 模式差異說明
#

我讓AI 整理了以下表格,供參考

模式 (Mode)簡述讀取快取 (Read)寫入快取 (Write)本地磁碟空間佔用檔案相容性適用場景
off (none)完全不快取無 (直接從雲端串流)無 (直接寫入雲端)最低 (僅少量緩衝)低 (不支援同時讀寫、無法隨機寫入)僅用於循序讀取 (如單純看影片),機器硬碟空間極小時。
minimal最小化快取無 (直接從雲端串流)無 (直接寫入雲端)中低 (支援開檔讀寫,但無法隨機寫入/Seek)基本與 off 相同,但能讓少部分需 O_RDWR 的程式運作。
writes僅快取寫入無 (直接從雲端串流) (先寫入本地,關檔後上傳)中 (視寫入量而定)高 (支援標準檔案操作)適合主要用於「備份」或「寫入」的場景,不常重複讀取舊檔。
full完整快取 (下載至本地並快取) (先寫入本地,關檔後上傳)高 (視快取上限 --vfs-cache-max-size 而定)極高 (最接近真實硬碟體驗)推薦預設值。適合 Plex/Emby 媒體庫、編輯文件、頻繁讀寫操作。

4.3 allow-other 設定
#

--allow-other可以讓其他使用者可以存取這個資料夾 若你跟我一樣使用了 --allow-other,則需解除 FUSE 限制: 用你喜歡的編輯器打開/etc/fuse.conf

sudo nano /etc/fuse.conf

將以下行取消註解:

user_allow_other

5.啟用與檢查服務
#

sudo systemctl daemon-reload
sudo systemctl start rclone
sudo systemctl status rclone
sudo systemctl enable rclone

看到 active (running) 即代表設定成功

參考資料
#

HongyiHank
作者
HongyiHank
台灣高二 Linuxer