rclone 工具使用

温馨提醒

安装 rclone

官方下载地址

配置 rclone

输入rclone config添加一个名为 huaweiobs的 remote

image-20250723160838054

选择数字 4

image-20250723160916753

选择提供商,数字 12

image-20250723161011825

直接回车

image-20250723161040518

输入 AK 和 SK

image-20250723161155486

选择区域

image-20250723161230517

选择 Endpoint

image-20250723161320471

直接回车

image-20250723161358445

image-20250723161437197

列出桶目录

image-20250723161920838

子命令

拷贝内容

  • copy

    复制文件到目标目录,跳过已存在且相同的文件(单向)

    1
    2
    3
    4
    5
    6
    7
    
    # 把文件复制到 test-tmp-bucket 桶下
    rclone copy test.zip huaweiobs:test-tmp-bucket/ -P
    
    -P				# 显示进度条
    --dry-run		# 模拟执行用于测试,不会真正上传
    --transfers=N	# 控制并发传输数,默认 4
    --checkers=N	# 控制并发校验数,默认 8
  • copyurl

    下载 URL 内容并上传到指定远程路径

    1
    2
    
    # 下载 rclone 安装包到 obs中,命名为 rclone.zip
    rclone copyurl https://downloads.rclone.org/v1.70.3/rclone-v1.70.3-linux-amd64.zip huaweiobs:test-tmp-bucket/rclone.zip
  • sync

    让目标与源目录完全一致(会删除目标中多余的文件)

    1
    
    rclone sync test.zip huaweiobs:test-tmp-bucket/ -P
  • listremotes

    列出配置文件中定义的所有远程存储名

    1
    
    rclone listremotes
  • move

    移动文件,移动后本地源文件会被删除

    1
    
    rclone move test.txt huaweiobs:test-tmp-bucket/
  • bisync

    用于双向同步,它会让两个目录(本地和远程)保持一致。

    它会对比本地和远程的文件变化,并双向更新差异。

    rclone bisync 会在每一端保存一个元数据文件 .rclone-bisync,用于记录上次同步的状态。

    不能在多个地方同时运行 rclone bisync,否则可能会损坏元数据。

    不要手动删除 .rclone-bisync 文件。

    不能与其他工具交叉修改目录内容,否则可能产生冲突

    1
    2
    3
    4
    5
    
    rclone bisync /data/backup huaweiobs:test-tmp-bucket/ --resync -P
    
    # 第一次使用,必须加上 --resync,表示初始化 .rclone-bisync 元数据文件,之后在同步就可以这样使用
    
    rclone bisync /data/backup huaweiobs:test-tmp-bucket/ -P
  • check

    检查源和目标文件是否匹配(大小和校验和)

    1
    
    rclone check /data/backup/ huaweiobs:test-tmp-bucket/

列出内容

  • ls

    列出路径下文件的大小

    1
    
    rclone ls huaweiobs:test-tmp-bucket/
  • lsl

    列出路径下的文件(包含修改时间、大小、文件名)

    1
    
    rclone lsl huaweiobs:test-tmp-bucket/
  • lsd

    仅列出路径下的目录

    1
    
    rclone lsd huaweiobs:test-tmp-bucket/
  • lsf

    仅列出对象名

    1
    
    rclone lsf huaweiobs:test-tmp-bucket/
  • lsjson

    以 JSON 格式列出对象

    1
    
    rclone lsjson huaweiobs:test-tmp-bucket/
  • tree

    以树形结构列出远程内容

    1
    
    rclone tree huaweiobs:test-tmp-bucket/

删除与清理

  • delete

    删除路径下的所有文件

    1
    
    rclone delete huaweiobs:test-tmp-bucket/
  • deletefile

    删除单个文件

    1
    
    rclone deletefile huaweiobs:test-tmp-bucket/123.txt
  • purge

    删除 bucket 及 bucket 下所有内容

    1
    
    rclone purge huaweiobs:test-tmp-bucket
  • rmdir

    删除空 bucket

    1
    
    rclone rmdir huaweiobs:test-tmp-bucket

示例

  • 清空桶中所有文件

    1
    2
    
    rclone sync abc/ huawei:jzzx-tmp-bucket --delete-during
    # abc/ 是一个本地空目录
  • 备份本地 /data/file 目录到华为云 obs 中

    1
    2
    3
    4
    
    在目录 /data/file 下创建 excludes.txt,在里面填写要排除的文件列表
    logs/**		# 排除 logs 下的所有文件
    *.bak			# 排除 .bak 结尾的文件
    *.zip			# 排除 .zip 结尾的文件
    1
    
    rclone sync -v /data/file huawei:/backup-bucket --exclude-from '/data/file/excludes.txt' >> /root/rclone.log 2>&1