CentOS 上备份 Swagger 的可执行方案
一 备份对象与存放位置
二 本地备份命令示例
mkdir -p /backup/swagger/$(date +%F)
tar czf /backup/swagger/$(date +%F)/swagger-ui-$(date +%F).tar.gz -C /opt/swagger/swagger-ui/dist .
tar czf /backup/swagger/$(date +%F)/swagger-json-$(date +%F).tar.gz /opt/swagger/swagger.json
rsync -av --delete /opt/swagger/swagger-ui/dist/ /backup/swagger/latest/swagger-ui/
rsync -av --delete /opt/swagger/swagger.json /backup/swagger/latest/swagger.json
三 远程备份与定时任务
# 生成密钥(仅首次)
ssh-keygen -t rsa -b 2048
ssh-copy-id root@192.168.1.32
# 备份脚本 /usr/local/bin/backup_swagger.sh
#!/bin/bash
BACKUP_DIR="/backup/swagger/$(date +%F)"
mkdir -p "$BACKUP_DIR"
tar czf "$BACKUP_DIR/swagger-ui-$(date +%F).tar.gz" -C /opt/swagger/swagger-ui/dist .
tar czf "$BACKUP_DIR/swagger-json-$(date +%F).tar.gz" /opt/swagger/swagger.json
# 传到远端
scp "$BACKUP_DIR"/*.tar.gz root@192.168.1.32:/data/backup/swagger/
# 保留最近 7 天
find /backup/swagger/ -type f -mtime +7 -delete
赋权并加入定时任务(每天 02:00 执行):chmod +x /usr/local/bin/backup_swagger.sh
crontab -e
0 2 * * * /usr/local/bin/backup_swagger.sh >> /var/log/backup_swagger.log 2>&1
四 Docker 环境的备份
tar czf /backup/swagger-ui-$(date +%F).tar.gz -C /opt/swagger-data .
docker run --rm --volumes-from swagger-ui -v $(pwd):/backup alpine \
tar czf /backup/swagger-ui-vol-$(date +%F).tar.gz /usr/share/nginx/html
五 恢复与校验
# 解压 UI
tar xzf swagger-ui-2025-12-19.tar.gz -C /opt/swagger/swagger-ui/dist
# 解压规范文件
tar xzf swagger-json-2025-12-19.tar.gz -C /opt/swagger
# 重启服务(如使用 systemd)
systemctl restart swagger-ui
# 或重启容器
docker restart swagger-ui