记一次使用rclone同步文件
It has been 419 days since the last update, the content of the article may be outdated.
什么是 rclone
rclone
是一个命令行程序,用于管理云存储上的文件。它是云供应商的网络存储接口的一个功能丰富的替代品。超过 40 种云存储产品支持 rclone
,包括 S3 对象存储、企业和消费者文件存储服务以及标准传输协议。
用户称 rclone
为“云存储的瑞士军刀”、 “无异于魔法的科技”。
rclone 具有强大的云等同于 unix 命令 rsync、cp、mv、mount、ls、ncdu、tree、rm 和 cat。rclone 熟悉的语法包括 shell 管道支持和–dry-run 保护。它在命令行、脚本或通过其 API 使用。
rclone
多种文件传输协议,支持 SFTP,HTTP,WebDAV,FTP 和 DLNA。rclone 是一个成熟的开源软件,最初受 rsync 的启发并采用 Golang 编写。其文档和社区也都非常好,提供广泛和友好的使用用例。
rclone 功能
rclone 支持但不仅限于下面列出功能:
- 将文件备份(和加密)到云存储
- 从云存储恢复(和解密)文件
- 将云数据镜像到其他云服务或本地
- 将数据迁移到云端,或在云存储供应商之间迁移
- 将多个、加密、缓存或多样化的云存储挂载为磁盘
- 使用 lsf、ljson、size、ncdu 分析和说明云存储上保存的数据
- 联合文件系统一起呈现多个本地和/或云文件系统作为一个
但一般用的最多的功能就是备份文件,同步文件。
特性
- 接送服务
- 始终检查 MD5、SHA1 哈希值以确保文件完整性
- 时间戳保留在文件中
- 可以随时重新启动操作
- 可以进出网络,例如两个不同的云提供商
- 可以使用多线程下载到本地磁盘
- 将新文件或更改的文件复制到云存储
- 同步(一种方式)使目录相同
- 验证后将文件移动到云存储删除本地
- 检查哈希和丢失/额外的文件
- 将您的云存储挂载为网络磁盘
- 通过 HTTP / WebDav / FTP / SFTP / DLNA 服务本地或远程文件
- 实验性基于 Web 的 GUI
使用
安装
rclone
就是一个二进制文件包,可以直接下载设置环境变量即可使用,这里直接使用官方的脚本安装,本次的安装环境为 Ubuntu23.10。
plaintext
1 | curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip |
安装之后可以用 rclone version
来查看版本号。
配置
配置可以直接添加配置文件的方式或者通过进入交互式配置会话命令一步步的完成配置。
默认配置完成的后配置文件都保存在:/root/.config/rclone/rclone.conf
目录下。
比如使用腾讯 COS 作为存储,可以直接编辑文件 /root/.config/rclone/rclone.conf
配置文件示例:
plaintext
1 | [tencent-cos] # 自定义的名称 |
常用命令
plaintext
1 | # 本地到网盘 |
以下是一些示例:
plaintext
1 | # 同步本地/data/file的文件夹内容到tencent-cos存储下的/beifen文件夹中,并且排除/root/excludes.txt中指定的文件内容 |
其他命令
可以使用 rclone --help
查看
命令 | 说明 |
---|---|
rclone copy | 复制 |
rclone move | 移动,如果要在移动后删除空源目录,加上 --delete-empty-src-dirs 参数 |
rclone mount | 挂载 |
rclone sync | 同步:将源目录同步到目标目录,只更改目标目录 |
rclone size | 查看网盘文件占用大小 |
rclone delete | 删除路径下的文件内容 |
rclone purge | 删除路径及其所有文件内容 |
rclone mkdir | 创建目录 |
rclone rmdir | 删除目录 |
rclone rmdirs | 删除指定环境下的空目录。如果加上 --leave-root 参数,则不会删除根目录 |
rclone check | 检查源和目的地址数据是否匹配 |
rclone ls | 列出指定路径下的所有的文件以及文件大小和路径 |
rclone lsl | 比上面多一个显示上传时间 |
rclone lsd | 列出指定路径下的目录 |
rclone lsf | 列出指定路径下的目录和文件 |
常用参数
命令 | 说明 |
---|---|
-n = –dry-run | 测试运行,查看 rclone 在实际运行中会进行哪些操作 |
-P = –progress | 显示实时传输进度,500 ms 刷新一次,否则默认 1 分钟刷新一次 |
–cache-chunk-size 5M | 块的大小,默认 5M 越大上传越快,占用内存越多,太大可能会导致进程中断 |
–onedrive-chunk-size 100M | 提高 OneDrive 上传速度适用于 G 口宽带服务器 |
–drive-chunk-size 64M | 提高 Google Drive 上传速度适用于 G 口宽带服务器 |
–cache-chunk-total-size SizeSuffix | 块可以在本地磁盘上占用的总大小 |
–transfers=N | 并行文件数,默认为 4 。在比较小的内存的 VPS 上建议调小这个参数,比如 128M 的小鸡上使用建议设置为 1 。 |
–config string | 指定配置文件路径,string 为配置文件路径 |
–ignore-errors | 跳过错误 |
–size-only | 根据文件大小校验,不校验 hash |
–drive-server-side-across-configs | 服务端对服务端传输 |
环境变量
命令 | 说明 |
---|---|
rclone_CONFIG | 自定义配置文件路径 |
rclone_CONFIG_PASS | 若 rclone 进行了加密设置,把此环境变量设置为密码,可自动解密配置文件 |
rclone_RETRIES | 上传失败重试次数,默认 3 次 |
rclone_RETRIES_SLEEP | 上传失败重试等待时间,默认禁用,单位 s、m、h 分别代表秒、分钟、小时 |
CLONE_TRANSFERS | 并行上传文件数 |
rclone_CACHE_CHUNK_SIZE | 块的大小 |
rclone_CACHE_CHUNK_TOTAL_SIZE | 块可以在本地磁盘上占用的总大小 |
rclone_IGNORE_ERRORS=true | 跳过错误 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 我的学习随记!