Ech0Ech0
功能指南

数据管理

Ech0 提供多种数据管理方式,保障数据安全与完整性

数据管理

Ech0 提供灵活的数据管理方案,以满足不同使用场景下的数据安全与备份需求。无论是通过 Web 面板、TUI 界面,还是命令行(CLI),您都可以高效地备份、导出与恢复数据。


Web 在线管理

Ech0 管理面板 → 数据管理 中,您可以直观地执行以下操作:

  • 创建快照:立即保存当前数据状态。
  • 导出快照:将快照下载至本地进行独立备份。
  • 恢复快照:从备份文件中恢复数据,支持零停机恢复机制。

若恢复后未立即显示最新数据,可手动重启容器以确保缓存同步。
docker restart ech0


TUI 数据管理(终端用户界面)

适用于 二进制安装版本用户(非 Docker 环境)。
Ech0 提供一个内置的 TUI(Text-based User Interface),用于在命令行终端快速管理数据。

# 启动 TUI 数据管理界面
ech0 tui

在 TUI 模式下,您可以:

创建、导出、恢复快照
TUI 适合服务器环境或偏好可视化终端界面的用户。


CLI 命令行管理

CLI 工具同样适用于 二进制安装用户,提供直接命令方式备份与恢复:

手动创建备份

ech0 backup

从指定文件恢复数据

ech0 restore ./backup/ech0-2025-11-09.db

Ech0 的 CLI 使用 Go 语言的 Cobra 框架实现,核心命令结构如下:

var backupCmd = &cobra.Command{
    Use:   "backup",
    Short: "备份数据",
    Run: func(cmd *cobra.Command, args []string) {
        cli.DoBackup()
    },
}

var restoreCmd = &cobra.Command{
    Use:   "restore",
    Short: "恢复数据",
    Run: func(cmd *cobra.Command, args []string) {
        if len(args) < 1 {
            cmd.Help()
            return
        }
        cli.DoRestore(args[0])
    },
}

CLI 适合自动化脚本、CI/CD 集成或远程 SSH 管理等场景。


⚠️ 注意事项

如果使用 Web 管理面板、TUI 或 CLI 三种方式均无法成功恢复数据(例如恢复后数据仍为空或显示异常), 您可以尝试 手动替换快照文件 的方式进行恢复:

  1. 停止 Ech0 服务或 Docker 容器,以防止数据库文件被占用。
  2. 找到您的快照文件(通常位于 backups/ 或自定义导出路径下)。
  3. 将该快照文件复制并粘贴到 Ech0 的数据目录中(默认路径为 /opt/ech0/data,或您部署时映射的对应目录)。
  4. 替换掉原有的 ech0.db(SQLite 数据文件)后,重新启动 Ech0。

✅ 提示: 进行手动替换前,建议先备份当前的 data 目录,以便在出现问题时可以回退。


定时自动备份设置

Ech0 的自动备份计划通过 Web 管理面板 直接配置,无需手动修改系统 crontab

在「设置 → 数据管理」页面中,可开启 自动备份 开关,并填写备份计划表达式。

🧩 计划表达式说明

Ech0 支持标准 crontab 表达式,可为 5 位或 6 位格式

# 5 位格式(分 时 日 月 周)
0 2 * * 0

# 6 位格式(秒 分 时 日 月 周)
0 0 2 * * 0

示例说明:

0 2 * * 0:每周日凌晨 2:00 进行一次自动备份
30 3 * * *:每天凌晨 3:30 自动执行备份
0 */6 * * *:每 6 小时执行一次自动备份
后台会自动根据此计划执行 backup 任务,并在日志中记录执行结果。
💡 提示:系统在自动备份时会创建时间戳命名的快照文件,可通过 Web 面板查看或下载。