温馨提示×

debian如何备份nodejs应用

小樊
39
2026-09-07 16:24:52
栏目: 编程语言

在 Debian 上备份 Node.js 应用,通常需要考虑代码、依赖、配置、数据和定时任务几部分。下面给你一套比较实用、可落地的做法。


一、需要备份哪些内容

一个典型 Node.js 应用通常包含:

  1. 应用代码
    • 项目目录(如 /var/www/myapp)
  2. 依赖
    • node_modules(或选择重新 npm install)
  3. 配置文件
    • .env
    • config/*.json
    • Nginx / PM2 配置
  4. 数据库(如有)
    • MySQL / PostgreSQL / MongoDB
  5. 进程管理配置
    • PM2:pm2 dump
  6. 定时任务
    • crontab -l

二、基础文件备份(应用本身)

1. 打包应用目录(推荐排除 node_modules)

cd /var/www
tar czf myapp-$(date +%F).tar.gz \
  --exclude=myapp/node_modules \
  myapp

恢复时:

tar xzf myapp-2026-01-21.tar.gz -C /var/www
cd /var/www/myapp
npm install

2. 使用 Git(更推荐)

如果是生产环境:

git clone git@github.com:user/myapp.git

备份 = 备份 Git 仓库 + .env


三、备份配置文件

1. 备份 .env

cp /var/www/myapp/.env ~/backup/myapp.env

2. 备份 Nginx 配置

tar czf nginx-conf-$(date +%F).tar.gz /etc/nginx/sites-available /etc/nginx/sites-enabled

3. 备份 PM2 配置

pm2 save
cp ~/.pm2/dump.pm2 ~/backup/

四、数据库备份(重点)

MySQL

mysqldump -u root -p mydb > mydb-$(date +%F).sql

PostgreSQL

pg_dump mydb > mydb-$(date +%F).sql

MongoDB

mongodump --db mydb --out ~/backup/mongodb-$(date +%F)

五、定时自动备份(crontab)

编辑任务:

crontab -e

每天凌晨 3 点备份:

0 3 * * * tar czf /backup/myapp-$(date +\%F).tar.gz --exclude=/var/www/myapp/node_modules /var/www/myapp
0 3 * * * mysqldump -u root -p密码 mydb > /backup/mydb-$(date +\%F).sql

六、完整备份脚本示例

#!/bin/bash
DATE=$(date +%F)
BACKUP_DIR=/backup

# 应用
tar czf $BACKUP_DIR/myapp-$DATE.tar.gz --exclude=/var/www/myapp/node_modules /var/www/myapp

# 配置
cp /var/www/myapp/.env $BACKUP_DIR/myapp.env-$DATE

# 数据库
mysqldump -u root mydb > $BACKUP_DIR/mydb-$DATE.sql

# PM2
pm2 save
cp ~/.pm2/dump.pm2 $BACKUP_DIR/
chmod +x backup.sh

七、进阶建议

  • ✅ 备份到远程(rsync / rclone / S3)
  • ✅ 保留 7~30 天历史
  • ✅ 定期恢复测试
  • ✅ 使用 Docker 时直接备份 volume

如果你愿意,可以告诉我:

  • 是否使用 PM2 / Docker
  • 是否使用 MySQL / MongoDB
  • 是 单机还是生产环境

我可以直接帮你写一套专属备份方案。

0 踩