简介

更新时间: 2023-06-01

准备工作

创建目标桶

在执行迁移或备份操作前,创建好用于迁移或备份的目标桶,并配置好目标桶的各项设置。

安装Rclone

详细安装方法,请参考文档:下载和安装

配置OSS连接信息

创建配置文件,设置OSS的连接信息。配置文件模板如下:

[OSS]
type = s3
provider = inspur
access_key_id = XXXXXXXX
secret_access_key = XXXXXXXXXXXXXXXX
endpoint = XXXXXXXX.inspurcloudoss.com
location_constraint = XXXXXXXX
acl = private

操作步骤

执行备份、迁移

执行如下命令:

rclone copy/sync/move source:source-bucket-name target:target-bucket-name --checksum --checkers 64 --transfers 64 --retries 10 -v --config C:\OSSRclone\oss.conf --log-file C:\OSSRclone\oss.log

备注:

  • copy/sync/move:命令执行模式,根据需求选择需要的命令。详细信息请参考附录-【命令模式说明】;
  • source:source-bucket-name:源桶数据的连接信息和桶名称,如果源数据为本地的文件,则需要将“source:source-bucket-name”替换成文件夹路径。
  • target:target-bucket-name:目标桶的连接信息和桶名称。
  • 数据备份和迁移过程中,如果源数据发生了变化,变化的内容会有未被同步的情况。此时需要再次执行命令,同步变化的内容。

设置定时任务

如果需要定期执行迁移、备份操作,则可以通过设置定时任务来完成。

Windows系统

在电脑桌面右键此电脑,弹出选项菜单,点击管理进入计算机管理界面。

常规页面设置计划任务的常规设置:

触发器页面设置计划任务的触发器,点击新建按钮,创建触发器:

操作页面设置计划任务,点击新建按钮,创建任务需要执行的操作:

创建完成,可在任务计划程序库列表中检查创建的任务。

备注:

  • 任务的状态:应该是“准备就绪”;
  • 下次运行时间:能够正确显示下次运行的时间。
  • 右键点击刚创建的任务,选择“运行”手动执行命令,确认是否能正确执行。

Linux系统

确认定时任务服务已启动:

BC-Linux, CentOS执行命令:

service crond status

Ubuntu执行命令:

service cron status

服务如果未启动,执行以下命令开启服务:

BC-Linux, CentOS:

service crond start

Ubuntu:

service cron start

使用root用户编辑文件"/etc/crontab"文件,添加定时任务:

在文件末尾追加需要定时执行的任务,格式为:“【执行时间】 【执行用户】 【执行命令】”,中间用空格分隔:

*/20 * * * * root rclone copy source:source-bucket-name target:target-bucket-name --checksum --checkers 64 --transfers 64 --retries 10 -v --config /rclone/oss.conf --log-file /rclone/copy.log

附录

命令参数说明

命令参数 说明
--buffer-size SizeSuffix 每次读取文件时的内存缓冲区大小--transfer(默认16Mi)
--bwlimit BwTimetable 带宽限制,以 KiB/s 为单位,或使用后缀 B
--bwlimit-file BwTimetable 每个文件的带宽限制,以 KiB/s 为单位,或使用后缀 B
--cache-dir string rclone 将用于缓存的目录(默认为“$HOME/.cache/rclone”)
--check-first 在开始传输之前进行所有检查。可能会改善IO性能不佳的场景下的性能,但会消耗更多的内存,文件数量大时会消耗较多时间才会开始传输。(默认无)
--checkers int 比较线程的并发数(默认 8)
-c, --checksum 比较文件是否相同时,比较文件大小和哈希值,而不是比较文件大小和修改时间。仅适用于源数据和目标桶均为对象存储的场景
--client-cert string 用于双向 TLS 身份验证的客户端 SSL 证书 (PEM)
--client-key string 用于双向 TLS 身份验证的客户端 SSL 私钥 (PEM)
--config string 配置文件(默认“$HOME/.config/rclone/rclone.conf”)
--contimeout duration 连接超时时间(默认 1m0s)
--ignore-existing 跳过目标上存在的所有文件
--cpuprofile string 将 cpu 配置文件写入文件
--log-file string 指定日志文件路径
--retries int 如果操作失败,重试操作多次(默认 3)
-P, --progress 在传输过程中显示进度
--transfers int 传输线程的并发数(默认 4)
--max-size,--min-size SizeSuffix 仅传输大于或小于此 KiB或后缀 B/K/M/G/T/P 的文件(默认关闭)

命令模式说明

命令 说明 数据变化-源数据 数据变化-目标桶
rclone copy 复制文件夹或桶中的数据 不会被改动 同名但内容不同的文件会被覆盖
rclone move 移动文件夹或桶中的数据 会被删除 同名但内容不同的文件会被覆盖
rclone sync 同步文件夹或桶中的数据 不会被改动 源数据中不存在的文件会被删除;同名但内容不同的文件会被覆盖

Linux定时任务cron表达式参数说明

参数 含义 取值范围
第一个 一小时当中的第几分钟(minute) 0~59
第三个 一个月当中的第几天(day) 1~31
第二个 一天当中的第几小时(hour) 0~23
第五个 一周当中的星期几(week) 0~7(0和7都代表星期日)
第四个 一年当中的第几个月(month) 1~12

备注:五个值中间用空格分隔: 参数的通配符:

特殊符号 含义
*(星号) 代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。
,(逗号) 代表不连续的时间。比如“0 8,12,16 *”就代表在每天的8点0分、12点0分、16点0分都执行一次命令。
-(中杠) 代表连续的时间范围。比如“0 5 1-6”,代表在周一到周六的凌晨5点0分执行命令。
/(正斜线) 代表每隔多久执行一次。比如“/10 *”,代表每隔10分钟就执行一次命令。