温馨提示×

Ubuntu下Node.js项目如何备份与恢复

小樊
49
2025-09-27 15:40:29
栏目: 编程语言

Ubuntu下Node.js项目备份与恢复指南

一、备份步骤

1. 备份项目代码

打开终端,使用cd命令导航到项目根目录(如/home/username/my-nodejs-project)。通过tar命令将项目文件夹打包为.tar.gz压缩文件(包含所有代码、配置文件及目录结构):

tar -czvf my-nodejs-project-backup.tar.gz . 

该命令会将当前目录下的所有内容压缩到my-nodejs-project-backup.tar.gz文件中。

2. 备份依赖信息(关键步骤)

Node.js项目的依赖关系由package.json(依赖列表)和package-lock.json/yarn.lock(精确版本锁定)文件定义。备份这两个文件可确保恢复时安装正确版本的依赖:

# 确保package.json是最新的(若有新增依赖) npm install # 备份lock文件(根据使用的包管理器选择其一) cp package-lock.json /path/to/backup/ # npm用户 # 或 cp yarn.lock /path/to/backup/ # yarn用户 

提示:若需备份完整的依赖列表(包括间接依赖),可使用以下命令生成production-dependencies.json文件:

npm install --production --json > production-dependencies.json 

将生成的文件一并备份。

3. (可选)备份node_modules文件夹

node_modules文件夹包含项目所有依赖的实际代码,但通常不建议备份(因可通过package.json重新安装)。若需备份(如避免依赖下载时间过长),可使用tar命令:

cd .. tar -czvf node_modules-backup.tar.gz my-nodejs-project/node_modules 

node_modules-backup.tar.gz复制到安全位置。

4. (可选)备份数据库(若项目使用数据库)

若项目连接MySQL、MongoDB等数据库,需单独备份数据库文件。以下是常见数据库的备份命令:

  • MySQL/MariaDB:使用mysqldump导出数据库结构和数据到SQL文件:
    mysqldump -u [username] -p[password] [database_name] > /path/to/backup/db_backup.sql 
  • MongoDB:使用mongodump导出数据库到指定目录:
    mongodump --db [database_name] --out /path/to/backup/mongodb_backup/ 

将生成的SQL文件或目录复制到安全位置。

5. 存储备份文件

将所有备份文件(代码压缩包、依赖文件、数据库备份)复制到安全位置(如外部硬盘、云存储或专用备份目录):

mv my-nodejs-project-backup.tar.gz /backup/ mv production-dependencies.json /backup/ mv db_backup.sql /backup/ # 若备份了数据库 

二、恢复步骤

1. 恢复项目代码

将备份的代码压缩包复制到目标目录(如原项目目录或新目录),使用tar命令解压缩:

cd /path/to/restore/directory tar -xzvf my-nodejs-project-backup.tar.gz 

解压后会还原项目的所有代码和目录结构。

2. 恢复依赖

进入项目目录,根据备份的依赖信息重新安装依赖:

  • 若备份了package-lock.json/yarn.lock:直接运行包管理器命令即可安装精确版本的依赖:
    npm install # npm用户 # 或 yarn install # yarn用户 
  • 若备份了production-dependencies.json:需通过脚本或手动方式安装依赖(需自行解析JSON文件)。

3. (可选)恢复node_modules文件夹

若备份了node_modules,可将压缩包复制到项目目录并解压缩:

cp /path/to/backup/node_modules-backup.tar.gz . tar -xzvf node_modules-backup.tar.gz 

注意:若已通过package.json重新安装依赖,此步骤可省略。

4. (可选)恢复数据库

若备份了数据库,需将备份文件复制到目标服务器,使用对应命令恢复:

  • MySQL/MariaDB:使用mysql命令导入SQL文件:
    mysql -u [username] -p[password] [database_name] < /path/to/backup/db_backup.sql 
  • MongoDB:使用mongorestore命令导入备份目录:
    mongorestore /path/to/backup/mongodb_backup/[database_name] 

恢复后需检查数据库连接配置(如config/database.js)是否正确。

5. 验证恢复结果

进入项目目录,运行项目以验证恢复是否成功:

npm start # 或项目指定的启动命令 

检查项目是否能正常启动,功能是否正常。

0