Skip to content

rollback 命令

回滚到之前的部署版本。

语法

bash
shipfe rollback [options] [version]

描述

rollback 命令将应用回滚到指定的历史版本。如果不指定版本,则回滚到上一个版本。

选项

选项描述
-c, --config <file>指定配置文件路径
-d, --debug启用调试模式
--dry-run预览模式,不实际执行回滚
-h, --help显示帮助信息

参数

  • version: 可选,要回滚到的版本号(时间戳格式,如 20260304_120000

示例

回滚到上一版本

bash
shipfe rollback

自动回滚到最近的稳定版本。

回滚到指定版本

bash
shipfe rollback 20260304_120000

回滚到特定的历史版本。

预览回滚

bash
shipfe rollback --dry-run

显示将要回滚到的版本,但不实际执行。

回滚流程

1. 版本选择

  • 如果指定了版本,直接使用
  • 如果未指定,自动选择最新的可用版本(非当前版本)

2. 验证检查

  • 检查目标版本是否存在
  • 验证快照文件的完整性
  • 确保版本文件未损坏

3. 原子切换

  • 切换 current 符号链接到目标版本
  • 确保切换的原子性

4. 状态验证

  • 验证切换后的符号链接正确
  • 检查应用是否正常运行

查看可用版本

要查看可回滚的版本:

bash
# SSH到服务器查看
ssh user@server "ls -la /var/www/myapp/releases/"

# 或使用shipfe日志
tail -f shipfe.log

回滚历史

每次回滚都会记录在日志中:

2026-03-04 12:01:00 INFO  Starting rollback to version 20260304_110000
2026-03-04 12:01:01 INFO  Successfully rolled back to version 20260304_110000

注意事项

  • 回滚不会删除任何版本,只改变当前链接
  • 可以多次回滚到不同版本
  • 回滚操作是可逆的,可以再次部署新版本

错误处理

如果回滚失败:

  • 当前版本保持不变
  • 详细错误信息输出
  • 不会影响应用的可用性

相关命令