前言#
Rclone 是一個命令行工具,支持在不同對象存儲、網盤間同步、上傳、下載數據。並且通過一些設置可以實現離線下載、伺服器備份等非常實用的功能。本篇文章將講解 Rclone 常用的一些命令參數。
Rclone 設定#
rclone config
- 進入互動式配置選項,進行添加、刪除、管理網盤等操作。詳細操作參見:《Rclone 安裝配置教程》
rclone config file
- 顯示配置文件的路徑,一般配置文件在 ~/.config/rclone/rclone.conf
rclone config show
- 顯示配置文件信息
命令語法#
# 本地到網盤
rclone [功能選項] <本地路徑> <網盤名稱:路徑> [參數] [參數] ...
# 網盤到本地
rclone [功能選項] <網盤名稱:路徑> <本地路徑> [參數] [參數] ...
# 網盤到網盤
rclone [功能選項] <網盤名稱:路徑> <網盤名稱:路徑> [參數] [參數] ...
用法示例#
rclone move -v /Download Onedrive:/Download --transfers=1
常用功能選項#
rclone copy
- 複製rclone move
- 移動,如果要在移動後刪除空源目錄,請加上--delete-empty-src-dirs
參數rclone sync
- 同步:將源目錄同步到目標目錄,只更改目標目錄。rclone size
- 查看網盤文件佔用大小。rclone delete
- 刪除路徑下的文件內容。rclone purge
- 刪除路徑及其所有文件內容。rclone mkdir
- 創建目錄。rclone rmdir
- 刪除目錄。rclone rmdirs
- 刪除指定靈境下的空目錄。如果加上--leave-root
參數,則不會刪除根目錄。rclone check
- 檢查源和目的地址數據是否匹配。rclone ls
- 列出指定路徑下的所有的文件以及文件大小和路徑。rclone lsl
- 比上面多一個顯示上傳時間。rclone lsd
列出指定路徑下的目錄rclone lsf
- 列出指定路徑下的目錄和文件
常用參數#
-n
=--dry-run
- 測試運行,用來查看 rclone 在實際運行中會進行哪些操作。-P
=--progress
- 顯示實時傳輸進度,500mS 刷新一次,否則默認 1 分鐘刷新一次。--cache-chunk-size SizeSuffi
- 塊的大小,默認 5M,理論上是越大上傳速度越快,同時佔用內存也越多。如果設置得太大,可能會導致進程中斷。--cache-chunk-total-size SizeSuffix
- 塊可以在本地磁碟上佔用的總大小,默認 10G。--transfers=N
- 並行文件數,默認為 4。在比較小的內存的 VPS 上建議調小這個參數,比如 128M 的小雞上使用建議設置為 1。--config string
- 指定配置文件路徑,string
為配置文件路徑。--ignore-errors
- 跳過錯誤。比如 OneDrive 在傳了某些特殊文件後會提示Failed to copy: failed to open source object: malwareDetected: Malware detected
,這會導致後續的傳輸任務被終止掉,此時就可以加上這個參數跳過錯誤。但需要注意 RCLONE 的退出狀態碼不會為0
。
日誌#
rclone 有 4 個級別的日誌記錄,ERROR
,NOTICE
,INFO
和 DEBUG
。默認情況下,rclone 將生成 ERROR
和 NOTICE
級別消息。
-q
- rclone 將僅生成ERROR
消息。-v
- rclone 將生成ERROR
,NOTICE
和INFO
消息, 推薦此項 。-vv
- rclone 將生成ERROR
,NOTICE
,INFO
和DEBUG
消息。--log-level LEVEL
- 標誌控制日誌級別。
輸出日誌到文件#
使用 --log-file=FILE
選項,rclone 會將 Error
,Info
和 Debug
消息以及標準錯誤重定向到 FILE
,這裡的 FILE
是你指定的日誌文件路徑。
另一種方法是使用系統的指向命令,比如:
rclone sync -v Onedrive:/DRIVEX Gdrive:/DRIVEX > "~/DRIVEX.log" 2>&1
文件過濾#
--exclude
- 排除文件或目錄。
--include
- 包含文件或目錄。
--filter
- 文件過濾規則,相當於上面兩個選項的其它使用方式。包含規則以 +
開頭,排除規則以 -
開頭。
文件類型過濾#
比如 --exclude "*.bak"
、--filter "- *.bak"
,排除所有 bak
文件。也可以寫作。
比如 --include "*.{png,jpg}"
、--filter "+ *.{png,jpg}"
,包含所有 png
和 jpg
文件,排除其他文件。
--delete-excluded
刪除排除的文件。需配合過濾參數使用,否則無效。
目錄過濾#
目錄過濾需要在目錄名稱後面加上 /
,否則會被當做文件進行匹配。以 /
開頭只會匹配根目錄(指定目錄下),否則匹配所目錄。這同樣適用於文件。
--exclude ".git/"
排除所有目錄下的.git
目錄。
--exclude "/.git/"
只排除根目錄下的.git
目錄。
--exclude "{Video,Software}/"
排除所有目錄下的 Video
和 Software
目錄。
--exclude "/{Video,Software}/"
只排除根目錄下的 Video
和 Software
目錄。
--include "/{Video,Software}/**"
僅包含根目錄下的 Video
和 Software
目錄的所有內容。
文件大小過濾#
默認大小單位為 kBytes
,但可以使用 k
,M
或 G
後綴。
--min-size
過濾小於指定大小的文件。比如 --min-size 50
表示不會傳輸小於 50k 的文件。
--max-size
過濾大於指定大小的文件。比如 --max-size 1G
表示不會傳輸大於 1G 的文件。
TIPS: 博主在實際使用中發現大小過濾兩個選項不能同時使用。
過濾規則文件#
--filter-from <規則文件>
從文件添加包含 / 排除規則。比如 --filter-from filter-file.txt
。
過濾規則文件示例:
- secret*.jpg
+ *.jpg
+ *.png
+ file2.avi
- /dir/Trash/**
+ /dir/**
- *
這裡僅舉例比較常用和簡單的一些過濾用法,更複雜和高端的用法可以查看官方文檔。
環境變量#
rclone 中的每個選項都可以通過環境變量設置。環境變量的名稱可以通過長選項名稱進行轉換,刪除 --
前綴,更改 -
為_
,大寫並添加前綴 RCLONE_
。環境變量的優先級會低於命令行選項,即通過命令行追加相應的選項時會覆蓋環境變量設定的值。
比如設置最小上傳大小 --min-size 50
,使用環境變量是 RCLONE_MIN_SIZE=50
。當環境變量設置後,在命令行中使用 --min-size 100
,那麼此時環境變量的值就會被覆蓋。
常用環境變量#
RCLONE_CONFIG
- 自定義配置文件路徑RCLONE_CONFIG_PASS
- 若 rclone 進行了加密設置,把此環境變量設置為密碼,可自動解密配置文件。RCLONE_RETRIES
- 上傳失敗重試次數,默認 3 次RCLONE_RETRIES_SLEEP
- 上傳失敗重試等待時間,默認禁用,單位s
、m
、h
分別代表秒、分鐘、 小時。CLONE_TRANSFERS
- 並行上傳文件數。RCLONE_CACHE_CHUNK_SIZE
- 塊的大小,默認 5M,理論上是越大上傳速度越快,同時佔用內存也越多。如果設置得太大,可能會導致進程中斷。RCLONE_CACHE_CHUNK_TOTAL_SIZE
- 塊可以在本地磁碟上佔用的總大小,默認 10G。RCLONE_IGNORE_ERRORS=true
- 跳過錯誤。