华为云 obsutil 实战:用命令行把数据迁移和增量备份做成一键自动化
【摘要】 上云的第一步往往不是"写代码",而是"搬数据"。用 obsutil 把几 TB 文件迁移、备份,比想象中简单得多。 一、控制台上传,只够"意思一下"把本地数据搬上华为云 OBS,如果只在控制台手动点上传,几十个文件还能忍,一旦变成几万个小文件、或者几百 GB 的大目录,就完全不可行——没有断点续传、不能增量、失败还得从头再来。华为云 OBS 官方提供了命令行工具 obsutil,专为批量与自...
上云的第一步往往不是"写代码",而是"搬数据"。用 obsutil 把几 TB 文件迁移、备份,比想象中简单得多。
一、控制台上传,只够"意思一下"
把本地数据搬上华为云 OBS,如果只在控制台手动点上传,几十个文件还能忍,一旦变成几万个小文件、或者几百 GB 的大目录,就完全不可行——没有断点续传、不能增量、失败还得从头再来。
华为云 OBS 官方提供了命令行工具 obsutil,专为批量与自动化场景设计,一条命令就能完成目录级上传、下载和增量同步。
二、装好并初始化配置
下载对应平台的 obsutil,解压后执行一次初始化配置:
./obsutil config -i=你的AK -k=你的SK -e=obs.cn-north-4.myhuaweicloud.com
其中 -e 是 endpoint,必须和桶所在区域一致,配错的典型症状就是各种 404/403 让人怀疑人生。配置会写入本地文件(默认 ~/.obsutilconfig,也可用 -config 指定),后续命令无需重复输入密钥。
如果你更习惯编程,也可以直接用 OBS SDK;但纯一次性、脚本化的迁移场景,obsutil 免编译、免依赖,反而更顺手。两者底层用的签名机制一致,选哪个只看你的使用习惯。
三、四个最常用命令
# 创建桶
./obsutil mb obs://my-bucket
# 上传单个文件
./obsutil cp ./app.jar obs://my-bucket/release/
# 递归上传整个目录(存在即覆盖、增量)
./obsutil cp ./data obs://my-bucket/data -r -f -u
# 增量同步(只传新增/变化的,做备份最合适)
./obsutil sync ./local obs://my-bucket/backup
参数说明:
-r:递归处理目录;-f:存在同名对象时直接覆盖;-u:增量,仅上传比 OBS 端更新的文件,是自动化备份的关键参数;sync:先对比两侧差异再同步,方向性强,最适合做定时备份。
日常还有两个高频操作——查看与下载:
# 查看桶内对象(-limit 控制返回条数)
./obsutil ls obs://my-bucket/data -limit=100
# 下载整个目录到本地,同样支持 -r/-f/-u
./obsutil cp obs://my-bucket/data ./local -r -f -u
四、实战避坑清单
- endpoint 别配错:按桶的区域填写;跨区域、内网不通的场景要用公网 endpoint。
- 并发与带宽要平衡:obsutil 默认并发数有限,海量小文件时可以调大并发线程数,但不能超过出口带宽上限,否则线程互相挤占,反而更慢。
- 大文件走分片:obsutil 会对超过阈值的大文件自动分片上传,配合断点续传,网络抖动后能从断点继续,不必前功尽弃。
- 增量依赖时间戳:
-u比较的是文件修改时间,机器时间不准或跨时区会误判,迁移前先校对系统时间。 - 备份用 sync,投放用 cp:定时备份选
sync,一次性的批量投放用cp -r,两者场景不同,别混用。 - 封装成脚本自动跑:把备份命令写进 shell 脚本并挂到 crontab,配合
-u增量,就能实现"每天只搬变化数据"的低成本自动备份,几乎不占用额外带宽。
五、小结
上云搬数据这件事,命令行永远比鼠标靠谱。记住 config → cp -r → sync 这条主线,再配上增量与断点续传,几 TB 的迁移也不过是一条命令加一段等待。真正卡住人的从来不是数据量,而是没有选对工具。从今天起,把搬数据这件事交给命令行。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)