首页主机资讯Debian Node.js应用如何备份与恢复

Debian Node.js应用如何备份与恢复

时间2025-11-25 21:04:03发布访客分类主机资讯浏览806
导读:备份范围与准备 明确需要纳入备份的范围: 代码:优先托管在 Git,确保有最新提交并推送到远端(如:git push origin main)。 依赖清单:保留 package.json 与 package-lock.json(或 ya...

备份范围与准备

  • 明确需要纳入备份的范围:
    • 代码:优先托管在 Git,确保有最新提交并推送到远端(如:git push origin main)。
    • 依赖清单:保留 package.jsonpackage-lock.json(或 yarn.lock),用于还原一致的依赖版本。
    • 配置:如 .env、自定义配置文件等,注意脱敏敏感信息。
    • 数据:数据库(如 MySQL/PostgreSQL/MongoDB)、文件系统中的上传/静态资源等。
    • 日志:运行日志、错误日志等(可按需备份或采用日志轮转)。

备份方法

  • 代码与依赖
    • 代码:使用 Git 进行版本控制与推送。
    • 依赖:确保生成或保留 package-lock.json(如执行 npm install 生成/更新),便于后续一致安装。
  • 项目目录打包归档
    • 在项目根目录执行:
      • 打包:tar -czvf project-backup_$(date +%F).tar.gz .
      • 传输/存放到安全位置(如外部盘、对象存储、远端服务器)。
  • 数据库备份
    • MySQL:mysqldump -u [用户名] -p [数据库名] > backup.sql
    • PostgreSQL:pg_dump -U [用户名] -W -F c -b -v -f “backup.dump” [数据库名]
    • MongoDB:mongodump --db [数据库名] --out /path/to/backup
  • 配置文件与静态/媒体文件
    • 拷贝如 .env、config 目录、public/uploads 等至备份目录,确保恢复时路径一致。
  • 日志与增量备份
    • 日志:使用 logrotate 做按日轮转与压缩,减少体积与保留天数。
    • 文件级增量:使用 rsync -av --delete 做本地/远端增量同步,节省时间与空间。

自动化与保留策略

  • 编写备份脚本 backup.sh(示例要点)
    • 打包项目:tar -czvf /backup/project-$(date +%F).tar.gz /path/to/project
    • 备份数据库(以 MySQL 为例):mysqldump -u [用户名] -p[密码] [数据库名] > /backup/db-$(date +%F).sql
    • 备份配置与静态资源:cp -R .env /backup/config-$(date +%F) 等
    • 设置权限:chmod +x /path/to/backup.sh
  • 定时任务
    • 使用 crontab -e 添加计划任务,例如每天 02:00 执行:
      • 0 2 * * * /path/to/backup.sh
  • 保留与清理
    • 在脚本中加入按日期命名的保留策略(如保留最近 7–30 天),定期清理过期归档,避免磁盘占满。

恢复步骤

  • 代码与依赖
    • 从远端克隆或解压归档到目标目录:
      • 解压:tar -xzvf project-backup_YYYY-MM-DD.tar.gz -C /opt/myapp
      • 安装依赖:cd /opt/myapp & & npm install
  • 配置与静态/媒体文件
    • 将备份的 .env、config、uploads 等复制回应用目录,注意文件权限与所有者。
  • 数据库恢复
    • MySQL:mysql -u [用户名] -p [数据库名] < backup.sql
    • PostgreSQL:pg_restore -U [用户名] -d [数据库名] -v backup.dump
    • MongoDB:mongorestore --db [数据库名] /path/to/backup/[数据库名]
  • 进程与验证
    • 使用 PM2 启动时执行:pm2 start ecosystem.config.js 或 pm2 restart all
    • 访问健康检查接口、查看日志,确认应用与数据库连接正常。

注意事项与最佳实践

  • 安全与合规
    • .env 等含敏感信息请加密存储与传输;备份落盘与远端存储均需设置访问控制。
    • 数据库备份尽量在低峰期执行;必要时采用事务一致性或维护窗口。
  • 一致性与幂等
    • 依赖安装使用锁文件(package-lock.json),避免版本漂移;恢复时先停写,恢复后校验数据完整性。
  • 监控与演练
    • 定期做恢复演练备份可用性校验(如随机还原一份到测试环境);为关键数据配置异地/多副本存储。
  • 日志与容量
    • 启用 logrotatePM2-logrotate 控制日志体积;为备份目录设置磁盘告警容量阈值

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian Node.js应用如何备份与恢复
本文地址: https://pptw.com/jishu/755958.html
Debian inotify能解决哪些实际问题 mount命令中dev参数怎么指定

游客 回复需填写必要信息