Rclone作为备份和同步的基本用法

  1. Rclone作为备份和同步的基本用法
    1. 使用
    2. 命令
      1. bucket 操作
      2. 文件操作
      3. ls
      4. 其他
    3. 常用参数
    4. 举例
    5. 使用过程遇到的问题

Rclone作为备份和同步的基本用法

自己家里的路由器和服务器经常被我折腾到重新装系统,有时候就会记不得备份一些设置,前几天用cadaver来备份,有点复杂,Openwrt 下没有相应的执行文件,所以又折腾用Rclone来备份,暂记几个用法。
rclone可以支持包括webdav在内的几十个云盘备份方法,当然多是国外的,而我主要用的是自己的和国内的,比如坚果云,就支持webdav的。

使用

以s3为例,可以使用rclone config按照提示一步步配置,也可以使用配置文件/root/.config/rclone/rclone.conf

参考

1
2
3
4
5
6
7
8
9
10
11
12
13
14
复制# 示例配置
[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可以查看默认配置文件的位置。

命令

1
2
复制查看所有远端账号
rclone listremotes

bucket 操作

1
2
3
4
5
6
7
8
复制查看所有bucket
rclone lsd remote:

创建bucket
rclone mkdir remote:bucket

删除空bucket
rclone rmdir remote:bucket

文件操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
复制查看文本文件
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

1
2
3
复制lsf    只显示文件名
lsjson json格式显示文件详情
lsl 查看文件详细信息

其他

1
2
3
4
5
6
复制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 # 显示文件树

常用参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
复制--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数量

举例

1
2
复制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

使用过程遇到的问题

  1. 挂载容量问题,现在是1PB

    https://forum.rclone.org/t/rclone-mount-question/15454

  2. 创建失败也不报错

  3. rclone ls s3: 会list所有bucket中的所有文件

  4. mount默认是在前台运行,使用--daemon可以放到后台运行


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com

×

喜欢就点赞,疼爱就打赏