Rclone介绍
Rclone 是一个命令行程序,用于管理云存储上的文件。它是云供应商 Web 存储接口的功能丰富的替代方案。它支持超过 40 种不同的云存储服务,包括 Amazon S3, Google Drive, Dropbox, Microsoft OneDrive, Google Cloud Storage, Amazon Drive, OpenStack Swift, Backblaze B2, Yandex Disk, SFTP, WebDAV, FTP, SFTP, Minio, Wasabi, Alibaba OSS, SwiftStack, Tencent COS, Wasabi, Yandex.Disk, Yandex.Files等等。
Rclone 支持多种文件传输方式,包括复制,同步,移动,删除文件。它还支持文件加密和压缩,支持分块上传和分块下载,可以暂停和恢复传输,支持文件的校验和合并。
Rclone 的主要优势在于它的灵活性和可扩展性。它可以用来做很多事情,包括备份,文件同步,数据迁移等。它可以在各种平台上运行,包括 Windows,macOS,Linux,FreeBSD,NetBSD 等。
主要的功能如下
将文件备份(和加密)到云存储
从云存储还原(和解密)文件
将云数据镜像到其他云服务或本地
将数据迁移到云,或在云存储供应商之间迁移
将多个、加密、缓存或不同的云存储挂载为磁盘
使用 lsf、ljson、size、ncdu 分析和核算云存储上保存的数据
将文件系统合并在一起,将多个本地和/或云文件系统呈现为一个
安装Rclone
curl https://rclone.org/install.sh | sudo bash
生成配置文件
rclone config
按照个人需求选择,也可以随便选,配置文件生成后再修改。
生成的配置文件路径为:/root/.config/rclone/rclone.conf
修改配置文件
vim /root/.config/rclone/rclone.conf
[oss-hz]
type=s3
provider=Alibaba
env_auth=false
access_key_id=AK
secret_access_key=SK
endpoint=oss-cn-hangzhou.aliyuncs.com
acl=private
storage_class=Standard
[s3-ap]
type=s3
provider=AWS
env_auth=false
access_key_id=AK
secret_access_key=SK
region=ap-southeast-1
endpoint=s3.ap-southeast-1.amazonaws.com
配置好后可以先使用rclone lsd验证下是否可以列出
rclone lsd - 列出指定路径下所有的目录/容器/桶
注意这里的名称都是写配置文件的名称
rclone lsd oss-hz:存储桶名
如果列出了桶中的文件夹则可以开启同步了
rclone sync 源名称:源桶 目标名称:目标桶
crontab -e
# 定时每十分钟同步一次,并记录错误日志
10 * * * * rclone sync oss-hz:存储桶名 s3-ap:存储桶名 >> /logs/rclone.log 2>&1
扩展
1.同步本地文件到云存储桶
rclone sync <LOCAL_PATH> oss-hz:存储桶名/target-path/
2.同步云存储桶文件到本地
rclone sync oss-hz:存储桶名/target-path/ <LOCAL_PATH>
3.将本地文件同步到云存储桶,并备份被删除或修改的文件到备份存储桶中
rclone sync <LOCAL_PATH> oss-hz:存储桶名 --backup-dir s3-ap:存储桶名/backup-dir
4.可以通过加 -p = --progress 显示迁移的进度及校验的结果
rclone check oss-hz:存储桶名 s3-ap:存储桶名 -P
5.同步过滤
–exclude 排除文件或目录
–include 包含文件或目录。
–filter - 文件过滤规则,相当于上面两个选项的其它使用方式。包含规则以 + 开头,排除规则以 - 开头。
文件类型过滤
–exclude “*.html”、–filter “- *.html”,排除所有html文件
–include “*.{png,jpg}”、–filter “+ *.{png,jpg}”,包含所有 png 和 jpg 文件,排除其他文件。
目录过滤
–exclude “.git/” 排除所有目录下的.git 目录。
–exclude “/.git/” 只排除根目录下的.git 目录。
–exclude “{Video,Software}/” 排除所有目录下的 Video 和 Software 目录。
–exclude “/{Video,Software}/” 只排除根目录下的 Video 和 Software 目录。
–include “/{Video,Software}/**” 仅包含根目录下的 Video 和 Software 目录的所有内容。
文件大小过滤
默认大小单位为 kBytes ,但可以使用 k ,M 或 G 后缀。
–min-size 过滤小于指定大小的文件。比如 --min-size 50 表示不会传输小于 50k 的文件。
–max-size 过滤大于指定大小的文件。比如 --max-size 1G 表示不会传输大于 1G 的文件。
备注:在实际使用中发现大小过滤两个选项不能同时使用。
常用命令
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 - 卸载挂载的云盘