简介
更新时间: 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分钟就执行一次命令。 |