Ubuntu上Node.js应用备份与恢复指南
一、备份步骤
1. 备份项目代码
使用tar命令将Node.js项目目录打包为压缩文件(包含所有源代码、配置文件和package.json/package-lock.json):
cd /path/to/your/nodejs/project # 进入项目目录
tar -czvf project-backup.tar.gz . # 打包当前目录所有内容
将生成的project-backup.tar.gz复制到安全位置(如外部硬盘、云存储或/home/username/backups目录)。
2. 备份项目依赖
通过package.json文件记录项目依赖,无需单独备份node_modules(恢复时可通过npm install重新安装)。若需备份依赖列表,可生成生产环境依赖JSON文件:
npm install --production --json > production-dependencies.json
将此文件与代码备份一同存储。
3. 备份数据库(若有)
若应用使用数据库(如MySQL、MongoDB),需单独备份数据库文件:
- MySQL:使用
mysqldump导出数据库结构和数据:mysqldump -u [username] -p[password] [database_name] > db_backup.sql - MongoDB:使用
mongodump导出数据库:mongodump --db [database_name] --out /path/to/backup/directory
将导出的SQL或dump文件复制到安全位置。
4. 自动化备份(可选)
通过脚本+定时任务实现定期自动备份:
- 编写备份脚本(如
backup.sh):赋予执行权限:#!/bin/bash BACKUP_DIR="/path/to/backup" DATE=$(date +"%Y%m%d_%H%M%S") tar -czvf "$BACKUP_DIR/project_$DATE.tar.gz" /path/to/your/nodejs/project mysqldump -u [username] -p[password] [database_name] > "$BACKUP_DIR/db_$DATE.sql"chmod +x backup.sh。 - 设置定时任务:使用
crontab -e添加规则(如每天凌晨2点执行):0 2 * * * /path/to/backup.sh
5. 使用rsync增量备份(可选)
若需增量备份(仅备份修改过的文件),可使用rsync工具:
rsync -avz --delete /path/to/your/nodejs/project /path/to/backup/directory
-a:归档模式(保留权限、时间戳等);-v:显示详细信息;--delete:删除备份目录中不存在于源目录的文件(保持同步)。
二、恢复步骤
1. 恢复项目代码
将备份的project-backup.tar.gz复制到目标服务器的项目目录,解压恢复:
cd /path/to/your/nodejs/project # 进入目标项目目录
tar -xzvf project-backup.tar.gz # 解压覆盖现有文件
2. 恢复项目依赖
若未备份node_modules,需重新安装依赖:
npm install # 根据package.json安装所有依赖
若备份了production-dependencies.json,可使用以下命令快速安装生产环境依赖:
npm install --production --json < production-dependencies.json
3. 恢复数据库(若有)
- MySQL:导入备份的SQL文件:
mysql -u [username] -p[password] [database_name] < db_backup.sql - MongoDB:导入dump文件:
mongorestore /path/to/backup/directory/database_name
4. 验证恢复
- 检查项目目录结构、源代码和配置文件是否完整;
- 运行
npm start或node app.js启动应用,测试功能是否正常; - 检查数据库连接和数据是否恢复成功。
以上就是关于“Ubuntu上Node.js应用如何备份与恢复”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm