本文介绍如何使用rclone将本地文件同步或备份到私有S3协议对象存储MinIO中,并实现定时自动化操作。使用其他S3协议存储服务操作类似,本文也能提供一些借鉴作用。
rclone 是一款开源的命令行工具,支持多种云存储服务(如 Google Drive、OneDrive、Dropbox 等)和对象存储服务(如 MinIO、AWS S3),可以用来同步文件、备份数据、加密存储及挂载云存储为本地磁盘。
确保以下内容已完成:
执行以下命令进入交互式配置:
rclone config
根据提示选择:
minio
)。s3
。endpoint
、access_key_id
和 secret_access_key
。如果需要直接编辑,rclone 配置文件路径如下:
%APPDATA%/rclone/rclone.conf
~/.config/rclone/rclone.conf
添加以下内容并替换为自己的参数:
[minio]
type = s3
provider = Minio
access_key_id = ykAtyXwzDDVVVVtPOj
secret_access_key = TkcDVVDVVtPOjtPODVVtPOjjGXEd1qTQQXf
region = eu-west-01
endpoint = https://minio.example.com
将本地目录 /data
同步到 MinIO 的 mybucket/backups
:
rclone sync /data minio:mybucket/backups --progress
参数说明:
/data
:本地源目录。minio:mybucket/backups
:目标 MinIO 存储路径,格式为 远程名称:桶名称/路径
。--progress
:显示同步进度。注意:
sync
操作会删除目标路径中本地不存在的文件,因此在同步前务必确认文件状态,避免误删远程数据。备份时可以使用 copy
命令,不会删除远程路径中额外的文件:
rclone copy /data minio:mybucket/backups --progress
参数说明:
copy
:将源目录内容复制到目标路径,保留远程路径中的多余文件。从 MinIO 恢复文件到本地路径 /restore
:
rclone copy minio:mybucket/backups /restore --log-file=/var/log/rclone-restore.log
参数说明:
minio:mybucket/backups
:源 MinIO 存储路径。/restore
:目标本地路径。--log-file
:记录操作日志到指定文件。操作 | sync | copy |
---|---|---|
功能 | 同步文件,删除目标路径中多余文件 | 备份文件,不删除目标路径中多余文件 |
用途 | 保持本地和远程一致 | 增量备份,保留历史文件 |
风险 | 误操作可能导致远程文件被删除 | 更安全,文件保留更完整 |
总结:
通过定时任务 cron
实现自动化同步和备份。
编辑 cron
配置文件:
crontab -e
添加以下内容,每天凌晨 2 点同步本地 /data
到 MinIO:
0 2 * * * /usr/bin/rclone sync /data minio:mybucket/backups --log-file=/var/log/rclone-backup.log
每天凌晨 4 点自动将远程文件恢复到本地 /restore
:
0 4 * * * /usr/bin/rclone copy minio:mybucket/backups /restore --log-file=/var/log/rclone-restore.log
通过 rclone,可以轻松实现数据从本地到远程的同步与备份操作。
sync
):适合镜像需求,需确保源与目标一致。copy
):适合增量备份,保留历史文件更安全。结合定时任务实现自动化管理,可大幅提高数据存储的便捷性和安全性!
更多功能和参数可参考 rclone 官方文档。