Debian Node.js 备份与恢复实操指南
一 备份范围与准备
二 代码与依赖的备份与恢复
tar -czvf project-backup_$(date +%F).tar.gz -C /path/to/your/nodejs/project .
mkdir -p /opt/yourapp
tar -xzvf project-backup_2025-12-14.tar.gz -C /opt/yourapp
cd /opt/yourapp
npm ci --only=production # 推荐:严格按 lock 文件重装,速度快且一致
# 或 npm install
sudo mkdir -p /backup/nodejs
rsync -av --delete /home/username/my-nodejs-project/ /backup/nodejs/
rsync -av --delete /backup/nodejs/ /opt/yourapp/
cd /opt/yourapp
npm ci --only=production
0 1 * * * tar -czvf /backup/nodejs_backup/backup_$(date +\%F).tar.gz -C /path/to/your/nodejs/project .
0 1 * * * rsync -av --delete /home/username/my-nodejs-project/ /backup/nodejs/
三 数据与日志的备份与恢复
mongodump --out /path/to/backup/mongo_$(date +%F)
mkdir -p /backup/logs
rsync -av --delete /var/log/nodejs /backup/logs/
rsync -av /backup/logs/nodejs /var/log/nodejs
/var/log/nodejs/*.log {
daily
rotate 7
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
/usr/sbin/killall -HUP node
endscript
}
sudo logrotate -d /etc/logrotate.d/nodejs-logs
sudo logrotate -f /etc/logrotate.d/nodejs-logs
四 自动化与验证
#!/usr/bin/env bash
set -e
BACKUP_ROOT="/backup/nodejs"
PROJECT_SRC="/home/username/my-nodejs-project"
LOGS_SRC="/var/log/nodejs"
DATE=$(date +%F)
mkdir -p "$BACKUP_ROOT/$DATE"
# 备份代码
tar -czvf "$BACKUP_ROOT/$DATE/project.tar.gz" -C "$PROJECT_SRC" .
# 备份日志
rsync -av --delete "$LOGS_SRC" "$BACKUP_ROOT/$DATE/"
# 记录
echo "[$DATE] Backup completed." >> "$BACKUP_ROOT/backup.log"
0 2 * * * /usr/local/bin/backup_nodejs.sh
五 注意事项与最佳实践