介紹
rclone 是一個命令行同步文件的工具。支持眾多協議,比如s3,本地文件,onedrive
s3 參數 https://rclone.org/s3/
安裝
curl https://rclone.org/install.sh | sudo bash
配置使用
以s3為例,可以使用rclone config
按照提示一步步配置,也可以使用配置文件/root/.config/rclone/rclone.conf
。
# 示例配置
[s3]
type = s3
provider = Other
env_auth = false
access_key_id = <access_key_id>
secret_access_key = <secret_access_key>
endpoint = <http://endpoint>
region = <region> # 可以不配置
#acl = public-read-write
#bucket_acl = public-read-write
chunk_size = 64M
disable_checksum = true
upload_concurrency = 4
rclone config file
可以查看默認配置文件的位置。
命令
查看所有遠端賬號
rclone listremotes
bucket 操作
查看所有bucket
rclone lsd remote:
創建bucket
rclone mkdir remote:bucket
刪除空bucket
rclone rmdir remote:bucket
文件操作
查看文本文件
rclone cat remote:bucket/xxx.ini
查看文件是否一致
rclone check remote_src:bucket/xxx.ini remote_dst:bucket/xxx.ini
文件拷貝,跳過已經存在的
rclone copy/copyto local remote:bucket
URL拷貝到文件
rclone urlcopy remote:bucket
刪除文件
rclone delete # 刪除多個文件
rclone deletefile # 刪除單個文件
生成外鏈
rclone link
ls
lsf 只顯示文件名
lsjson json格式顯示文件詳情
lsl 查看文件詳細信息
其他
rclone purge 清空bucket
size # 查看文件詳情 Prints the total size and number of objects in remote:path.
sync # 同步文件 Make source and dest identical, modifying destination only.
touch # 創建一個文件或修改已存在文件的modifytime
tree # 顯示文件樹
常用參數
--s3-provider Other
--max-backlog #N # 在 sync/copy/move 時使用,占用 N 倍 KB 內存
--buffer-size=SIZE # 加速 sync/copy/move
--bwlimit UP:DOWN # 上傳下載限速,b|k|M|G
--size-only 使用sync功能配合此參數,表示只有文件大小有變化才會同步文件,可能存在文件大小未變但是文件已經發生變化,不推薦使用;
--checksum 通過md5判斷文件是否有變化,md5發生變化時才會同步文件;如果source是本地磁盤,這會帶來較多的磁盤和CPU消耗;如果source和destination都是對象存儲,則推薦使用這個參數;
--update --use-server-modtime 通過mtime判斷文件是否變化,只有當本地文件的mtime較新時,文件才會上傳
--fast-list rclone默認的遍歷方式是單獨處理每個目錄,每個目錄調用1次API。使用這個參數將會將所有文件信息加入內存(1000個文件進行1次API調用),1個文件消耗1k內存。
--no-traverse 當destination中文件較多時,使用此參數將會直接查找這個文件,而不是通過文件列表
--max-age 限制文件最大age,用來上傳最近的文件
--s3-no-head 默認上傳后會通過head檢測文件是否已經上傳,通過此參數可關閉。
--s3-upload-cutoff 文件大於這個值會使用分片上傳,默認值是200M,最大值是5G https://rclone.org/s3/#s3-upload-cutoff
--s3-disable-checksum 不計算md5
--s3-upload-concurrency 默認值4,有多少chunck同時上傳,如果傳少量大文件,提高這個參數可以提升帶寬。
--s3-chunk-size 默認值 5M
--s3-max-upload-parts 默認值10000
--s3-force-path-style 默認值true
--s3-v2-auth 默認值false
--s3-list-chunk 默認值1000,每次list返回的key數量
舉例
rclone sync hcp:prod ks3-bbx:bbxprd --create-empty-src-dirs -P --transfers 16 --s3-upload-cutoff 5G
rclone copy --min-age 24h --no-traverse /path/to/source s3:bucket
使用過程遇到的問題
-
掛載容量問題,現在是1PB
-
創建失敗也不報錯
-
rclone ls s3:
會list所有bucket中的所有文件 -
mount
默認是在前台運行,使用--daemon
可以放到后台運行