1. 程式人生 > 實用技巧 >rclone 雲盤同步工具的正確開啟方式

rclone 雲盤同步工具的正確開啟方式

Rclone 是一款的命令列工具,支援在不同物件儲存、網盤間同步、上傳、下載資料。

官網網址:https://rclone.org/

Github 專案:https://github.com/ncw/rclone

安裝rclone

下載原始碼安裝

wget 'https://downloads.rclone.org/v1.52.3/rclone-v1.52.3-linux-amd64.zip'
unzip rclone-v1.52.3-linux-amd64.zip
cp ./rclone-*/rclone /usr/local/bin
rm -rf ./rclone-*

使用官網推薦指令碼安裝

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

配置rclone

在Linux或者Mac上完成安裝之後,rclone會預設從配置檔案~/.config/rclone/rclone.conf中獲取rclone的配置。我們既可以通過rclone config命令來互動式修改這個配置,也可以直接編輯這個配置檔案。

AWS S3的rclone的配置

[s3-overseas]
type = s3
provider = AWS
env_auth = false
access_key_id = <your-aws-access-key-id>
secret_access_key = <your-aws-secret-access-key>
region = <your-region-id>
acl = public-read
endpoint = https://s3.<your-region-id>.amazonaws.com

配置引數詳解

  • [s3-overseas]: 定義該S3在本地的一個別名,後續執行命令時方便呼叫
  • type: 指定該配置的型別
  • provider: 儲存的提供商,具體可參照官方文件
  • env_auth: 是否從環境變數中讀取
  • access_key_id: 有許可權操作bucket的 AK
  • secret_access_key: 有許可權操作bucket的 SK
  • region: bucket所處的地區
  • acl: 上傳的檔案的許可權
  • endpoint: bucket的加速地址 點選檢視AWS加速節點

如果 env_auth 配置為 true , 可以避免在rclone.conf中寫上AWS的key和secret,而是直接使用~/.aws/中的配置

也可以在執行rclone時,通過指定環境變數AWS_PROFILE=<your_profile_name>來使用某一個profile

Ali OSS的rclone配置

[oss-hwpf]
type = s3
provider = Alibaba
access_key_id = <your-ali-access-key-id>
secret_access_key = <your-ali-secret-access-key>
endpoint = oss-cn-hongkong.aliyuncs.com
acl = public-read

點選檢視阿里雲OSS加速節點

使用說明

rclone config - 以控制會話的形式新增rclone的配置,配置儲存在.rclone.conf檔案中。
rclone copy - 將檔案從源複製到目的地址,跳過已複製完成的。
rclone sync - 將源資料同步到目的地址,只更新目的地址的資料。   –dry-run標誌來檢查要複製、刪除的資料
rclone move - 將源資料移動到目的地址。
rclone delete - 刪除指定路徑下的檔案內容。
rclone purge - 清空指定路徑下所有檔案資料。
rclone mkdir - 建立一個新目錄。
rclone rmdir - 刪除空目錄。
rclone check - 檢查源和目的地址資料是否匹配。
rclone ls - 列出指定路徑下所有的檔案以及檔案大小和路徑。
rclone lsd - 列出指定路徑下所有的目錄/容器/桶。
rclone lsl - 列出指定路徑下所有檔案以及修改時間、檔案大小和路徑。
rclone md5sum - 為指定路徑下的所有檔案產生一個md5sum檔案。
rclone sha1sum - 為指定路徑下的所有檔案產生一個sha1sum檔案。
rclone size - 獲取指定路徑下,檔案內容的總大小。.
rclone version - 檢視當前版本。
rclone cleanup - 清空remote。
rclone dedupe - 互動式查詢重複檔案,進行刪除/重新命名操作。
rclone mount - 掛載雲盤為本地硬碟
fusermount -qzu LocalFolder  - 解除安裝掛載的雲盤

rclone的常用操作

ls

### 顯示遠端bucket下的檔案
rclone ls s3-overseas:bucket-name
OUT:   106622 header.png

### 顯示遠端bucket下的目錄
rclone lsd s3-overseas:bucket-name
OUT:   0 2020-08-27 15:57:08        -1 new

### 以json形式列出bucket下的目錄和檔案
rclone lsjson s3-overseas:bucket-name
OUT: [
OUT: {"Path":"header.png","Name":"header.png","Size":106622,"MimeType":"image/png","ModTime":"2020-08-27T07:32:29.000000000Z","IsDir":false,"Tier":"STANDARD"},
OUT: {"Path":"new","Name":"new","Size":0,"MimeType":"inode/directory","ModTime":"2020-08-27T16:02:42.413393904+08:00","IsDir":true}
OUT: ]

### 以json形式遞迴的列出bucket-name下目錄和檔案
rclone lsjson s3-overseas:bucket-name -R

### 檢視儲存桶中500B以上的檔案列表
rclone --min-size 500B lsl s3-overseas:bucket-name

sync

### 同步本地目錄或檔案到遠端bucket
rclone sync <LOCAL_PATH> s3-overseas:bucket-name/target-path/

### 同步遠端bucket目錄到本地
rclone sync s3-overseas:bucket-name/target-path/ <LOCAL_PATH>

### 遠端同步到遠端
# S3直接同步到阿里的OSS
rclone sync s3-overseas:bucket-name oss-hwpf:bucket-name

### 將本地檔案同步到遠端,並備份被刪除或修改的檔案到備份儲存桶中
rclone sync <LOCAL_PATH> s3-overseas:bucket-name --backup-dir s3-overseas:backup-bucket-name/backup-dir

sync操作,會刪除目標端的目錄或檔案。執行前可以加 --dry-run引數檢視將要刪除的檔案或目錄

copy

### 拷貝本地檔案到遠端
rclone copy <LOCAL_PATH> s3-overseas:bucket-name/target-path/

## 拷貝遠端物件到本地
rclone copy s3-overseas:bucket-name/target-path/ <LOCAL_PATH>

rclone copy --max-age 24h --progress --no-traverse <LOCAL_PATH> s3-overseas:bucket-name/target-path/

copy操作,不會刪除目標端的任何檔案

--max-age 24h: 過濾出來最近24小時變更過的檔案

--progress: 顯示進度 等同於 -P

--no-traverse: 從源拷貝少量檔案到目的中大量目的檔案時,速度會更快

mkdir

### 建立新的bucket 需要AKSK有許可權
rclone mkdir s3-overseas:new-bucket-name  # 在AWS建立儲存桶new-bucket-name

### 建立新目錄
rclone mkdir s3-overseas:bucket-name/new-dir

delete

### 刪除bucket根目錄下的delete.file  如果`--include`不加路徑,則遞迴刪除所有該名字檔案
rclone delete s3-overseas:bucket-name --include=/delete.file

check

### 對比本地檔案和遠端檔案,預設校驗修改時間和大小
rclone check <LOCAL_PATH> s3-overseas:bucket-name/target-path/ --one-way

### 進行資料對比校驗
rclone check s3-overseas:bucket-name/target-path/  oss-hwpf:bucket-name/target-path/ -P