如何将JFrog Artifact Registry备份至S3?服务器存储告急
解决方案:JFrog Artifact Registry 备份迁移至S3及每日无数据丢失备份方案
一、紧急迁移现有本地备份至S3(释放服务器空间)
服务器存储已达95%阈值,优先转移现有本地备份释放空间:
- 暂停本地备份任务:避免备份过程继续占用存储,执行命令:
curl -u admin:<你的密码> -X POST "http://<jfrog服务器地址>/artifactory/api/system/backup/<备份任务ID>/pause" - 分批次上传至S3:用AWS CLI分块上传备份文件,避免一次性占用过多内存:
aws s3 cp /本地备份路径/ s3://<目标S3桶名>/jfrog-backups/ --recursive --exclude "*" --include "*.zip" --parallel - 删除本地备份文件:上传完成后立即清理本地备份,释放空间:
rm -rf /本地备份路径/* - 验证备份完整性:下载S3中一个小型备份包,解压后对比本地库的元数据(如仓库配置文件)确认一致。
二、配置JFrog直接备份至S3(每日无数据丢失)
基于JFrog 7.4.1商业版原生S3支持,配置增量+全量结合的备份策略,全程不占用本地存储:
1. 配置S3作为备份目标
在JFrog Web UI中操作:
- 进入Admin > System > Backup,点击New Backup
- 填写任务名称,在Backup Location选择Amazon S3
- 配置S3参数:
- Bucket Name:目标S3桶名称
- AWS Access Key/Secret Key:拥有S3写入权限的密钥
- Region:S3桶所在区域
- Path Prefix:可选,用于区分备份版本的路径(如
daily-backups/)
- 勾选Include Content和Include Metadata,确保制品和配置都被备份
2. 每日无数据丢失的备份策略
- 全量备份:每周执行1次(如周日凌晨),生成完整灾备副本
- 增量备份:每日执行,仅备份当日新增/修改的制品和元数据,减少备份体积与耗时
- 在备份任务中开启Incremental Backup,JFrog会自动基于上一次备份生成增量包
- 实时事件备份(可选):启用事件监听同步关键变更
- 进入Admin > Events > Event Listeners,创建监听
artifact.created、artifact.updated、configuration.updated等事件的监听器,触发后直接同步变更至S3
- 进入Admin > Events > Event Listeners,创建监听
3. 优化备份过程,避免占用本地资源
- 关闭Local Backup Cache:确保备份数据直接写入S3,不经过本地磁盘中转
- 调整并发上传线程:在Backup Settings中设置10-20个并发线程,平衡带宽与CPU占用
- 备份前清理临时缓存:执行命令释放服务器临时空间:
curl -u admin:<你的密码> -X POST "http://<jfrog服务器地址>/artifactory/api/system/storage/cleanup"
三、定期验证备份恢复能力
每月执行一次恢复测试,确保S3备份可用:
- 从S3下载最新全量备份+增量备份包
- 在测试环境部署同版本JFrog,执行恢复命令:
curl -u admin:<测试环境密码> -X POST "http://<测试环境地址>/artifactory/api/system/restore" -H "Content-Type: application/json" -d '{ "backupKey": "<S3备份文件Key>", "includeContent": true, "includeMetadata": true }' - 验证测试环境的制品、配置与生产环境完全一致
内容的提问来源于stack exchange,提问作者karthik
相关产品推荐
相关产品推荐

