rclone 雲盤同步工具的正確開啟方式
阿新 • • 發佈:2020-08-27
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的 AKsecret_access_key
: 有許可權操作bucket的 SKregion
: 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
使用說明
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