以下是Debian系统中Node.js日志的备份策略,可按需组合使用:
日志轮转(logrotate)
sudo apt-get install logrotate/etc/logrotate.d/下创建nodejs-logs文件,添加以下内容:/path/to/nodejs/logs/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0640 root adm
postrotate
/usr/bin/kill -USR1 $(cat /path/to/nodejs/logs/node.pid) # 重启Node.js应用(若使用PM2需调整)
endscript
}
sudo logrotate -d /etc/logrotate.d/nodejs-logs(测试),sudo logrotate -f /etc/logrotate.d/nodejs-logs(强制执行)。定时备份(cron)
crontab -e0 2 * * * tar -czvf /backup/nodejs-logs-$(date +\%Y\%m\%d).tar.gz /path/to/nodejs/logs/rsync实现远程备份:rsync -avz /backup/nodejs-logs/ user@remote-server:/remote/backup/。集中式日志管理
systemd-journald发送日志到远程服务器(需在/etc/systemd/journald.conf中设置ForwardToSyslog=yes),或使用ELK Stack(Elasticsearch+Logstash+Kibana)集中分析日志。监控与报警
Monit监控日志文件大小及备份任务状态,异常时发送警报。/etc/monit/monitrc):check file nodejs-logs with path /path/to/nodejs/logs/*.log
if size > 100M then alert
注意事项:
chmod 750 /backup),敏感数据可加密存储。~/.pm2/logs)。