温馨提示×

如何备份Linux Swagger

小樊
37
2026-08-05 21:34:06
栏目: 智能运维

在 Linux 上“备份 Swagger”通常取决于你使用的是哪种 Swagger 形态。下面我按最常见的几种场景给你一套完整可用的备份方案,你可以对号入座。


一、先明确:你指的是哪一种 Swagger?

场景 要备份的内容
Swagger UI(前端) 静态文件 / 容器 / Nginx
Swagger API 文档(JSON / YAML) /v2/api-docsopenapi.yaml
Spring Boot + Swagger 接口代码 + 文档接口
Swagger Editor 编辑文件
API 网关 / 微服务 聚合 Swagger 文档

二、备份 Swagger API 文档(最常见 ✅)

1️⃣ 备份 Swagger JSON(最稳妥)

curl http://localhost:8080/v2/api-docs > swagger-backup.json

或 OpenAPI 3:

curl http://localhost:8080/v3/api-docs > openapi-backup.json

这是最推荐的备份方式 ✅ 可用于:

  • 恢复文档
  • 生成前端代码
  • 导入 Apifox / Postman / Swagger Editor

2️⃣ 定期自动备份(建议)

#!/bin/bash
BACKUP_DIR=/data/backup/swagger
mkdir -p $BACKUP_DIR
DATE=$(date +%F)
curl -s http://localhost:8080/v2/api-docs > $BACKUP_DIR/swagger-$DATE.json

加入 crontab:

crontab -e
0 2 * * * /opt/scripts/backup-swagger.sh

三、备份 Swagger UI(前端页面)

✅ 如果是静态部署(Nginx)

cp -r /usr/share/nginx/html/swagger /backup/swagger-ui-$(date +%F)

或直接打包:

tar czf swagger-ui-backup.tar.gz /usr/share/nginx/html/swagger

✅ 如果是 Docker 部署

docker cp swagger-ui-container:/usr/share/nginx/html ./swagger-ui-backup

或导出镜像:

docker commit swagger-ui-container swagger-ui-backup
docker save swagger-ui-backup > swagger-ui-backup.tar

四、备份 Spring Boot 项目中的 Swagger

重点是:代码 + 文档接口

1️⃣ 备份源码

tar czf springboot-backup.tar.gz /opt/app

或使用 Git(强烈推荐):

git remote -v
git push

2️⃣ 确认 Swagger 依赖(防止恢复失败)

springfox-boot-starter

或:

springdoc-openapi-starter-webmvc-ui

五、备份 Swagger Editor 文件

方式 1:直接复制

cp swagger.yaml /backup/swagger-$(date +%F).yaml

方式 2:自动同步到 Git

git add swagger.yaml
git commit -m "Backup swagger"
git push

六、集中式 API 文档备份(推荐架构)

API 服务 → 定时导出 JSON → Git / MinIO / NFS

示例目录:

/backup/swagger/
 ├── user-service-2026-01-21.json
 ├── order-service-2026-01-21.json
 └── gateway-aggregate.json

七、恢复 Swagger 的方法

恢复文档:

curl -X POST http://localhost:8080/swagger-restore \
     -d @swagger-backup.json

或使用 Swagger Editor 直接导入 JSON / YAML。


八、推荐最佳实践 ✅

备份 JSON,而不是页面与代码 Git 仓库分离定期 + 自动保留版本历史生产环境至少每日一份


九、如果你愿意,我可以进一步帮你

你可以直接告诉我:

1️⃣ 你是 Spring Boot / Node / PHP / 微服务?
2️⃣ Swagger 是 UI 还是文档接口?
3️⃣ 用的是 Docker 还是裸机?

我可以给你一份完全针对你环境的备份脚本

0