Ubuntu中Node.js日志备份方法
一 系统级日志轮转 logrotate
/var/log/nodejs/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0640 root adm
sharedscripts
postrotate
# 按你的进程管理方式选择其一
systemctl reload myapp.service >/dev/null 2>&1 || true
# 或 pm2:pm2 reload app_name >/dev/null 2>&1 || true
# 或 直接发送信号:kill -USR1 $(cat /var/run/nodejs.pid) 2>/dev/null || true
endscript
}
二 使用 PM2 内置日志切割
三 脚本化打包与定时备份
#!/usr/bin/env bash
set -e
LOG_DIR="/var/log/nodejs"
BACKUP_BASE="/backup/nodejs"
DATE=$(date +%F_%H%M%S)
mkdir -p "$BACKUP_BASE/$DATE"
tar -czf "$BACKUP_BASE/$DATE/nodejs_logs_$DATE.tar.gz" -C "$LOG_DIR" .
# 可选:清理超过N天的归档
find "$BACKUP_BASE" -maxdepth 1 -type d -mtime +7 -delete
rsync -avz --delete /backup/nodejs/ user@remote:/backup/nodejs/
四 集中式日志与远程备份
五 备份策略与恢复建议