全量备份 · 本地 + 服务器 + MongoDB
1. 本地(开发机 Windows)
- 命令:
npm run backup:full(对应scripts/full-backup.js) - 生成文件:
backups/im-bridge-full-v2.1.0-20260329-093637.tar.gz(相对仓库根目录) - 内容:当前仓库整树;已排除
node_modules、test-results;不包含历史backups/*.tar.gz以免嵌套。 - 数据目录:当时未设置
IM_BRIDGE_DATA_DIR,故未额外生成im-bridge-data-*.tar.gz。若需一并打包外置配置目录,可在 PowerShell 中执行:
$env:IM_BRIDGE_DATA_DIR='<数据目录绝对路径>'; npm run backup:full
2. 服务器(106.14.25.190)
备份目录:/app/im-bridge-backups/
| 文件名 | 说明 |
|---|---|
im-bridge-code-20260329-093805.tar.gz |
/app/im-bridge 应用目录;已排除 node_modules、test-results。 |
mongo-im-bridge-20260329-093945.archive.gz |
MongoDB 数据库 im-bridge 的 mongodump --gzip 单文件归档;URI:mongodb://127.0.0.1:27017/im-bridge。 |
im-bridge-data-20260329-094000.tar.gz |
外置数据目录 /app/im-bridge-data(若存在则已打包;体积极小表示主要为配置文件类)。 |
说明:曾误生成空时间戳包
im-bridge-code-.tar.gz(PowerShell 与 SSH 引号导致远程 $STAMP 为空),已在服务器上删除。后续在 Windows 下执行远程备份时,建议对 SSH 远程脚本使用单引号包裹整段,避免本地展开变量。
3. MongoDB 恢复参考(服务器)
在目标机已安装 mongorestore、且确认 URI 与库名无误时使用。以下为覆盖式示例,生产请谨慎:
mongorestore --uri=mongodb://127.0.0.1:27017/im-bridge \
--archive=/app/im-bridge-backups/mongo-im-bridge-20260329-093945.archive.gz \
--gzip --drop
--drop 会先删除目标库中已有集合再导入。建议先在测试实例或临时库验证。
4. 运维建议
- 将
/app/im-bridge-backups/定期同步到对象存储或其它机器,避免与系统盘同损。 - 若 Mongo 使用认证或非本机地址,请在后续备份记录中写明实际
MONGODB_URI(勿将密码提交到公开仓库)。