在 Debian 上备份 Node.js 应用,通常需要考虑代码、依赖、配置、数据和定时任务几部分。下面给你一套比较实用、可落地的做法。
一个典型 Node.js 应用通常包含:
/var/www/myapp)node_modules(或选择重新 npm install).envconfig/*.jsonpm2 dumpcrontab -lcd /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
如果是生产环境:
git clone git@github.com:user/myapp.git
备份 = 备份 Git 仓库 + .env
cp /var/www/myapp/.env ~/backup/myapp.env
tar czf nginx-conf-$(date +%F).tar.gz /etc/nginx/sites-available /etc/nginx/sites-enabled
pm2 save
cp ~/.pm2/dump.pm2 ~/backup/
mysqldump -u root -p mydb > mydb-$(date +%F).sql
pg_dump mydb > mydb-$(date +%F).sql
mongodump --db mydb --out ~/backup/mongodb-$(date +%F)
编辑任务:
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
如果你愿意,可以告诉我:
我可以直接帮你写一套专属备份方案。