阅读量:2
以下是Ubuntu上Node.js日志的备份策略,可按需选择或组合使用:
-
logrotate工具(推荐)
- 安装:
sudo apt-get install logrotate - 配置:在
/etc/logrotate.d/下创建配置文件(如nodejs),内容示例:
(参数说明:每天轮转,保留7天,压缩旧日志,自动截断原文件)/var/log/nodejs/*.log { daily rotate 7 compress missingok notifempty copytruncate dateext }
- 安装:
-
PM2内置轮转(需使用PM2管理进程)
- 安装PM2:
sudo npm install pm2 -g - 启用轮转:
pm2 install pm2-logrotate pm2 set pm2-logrotate:max_size 100M # 单个文件最大100MB pm2 set pm2-logrotate:retain 30 # 保留30个文件 pm2 set pm2-logrotate:compress true # 压缩旧日志
- 安装PM2:
-
手动脚本+定时任务(cron)
- 编写脚本(如
/usr/local/bin/backup-node-logs.sh):#!/bin/bash LOG_DIR="/var/log/nodejs" BACKUP_DIR="/backup/nodejs-logs" TIMESTAMP=$(date +"%Y-%m-%d") mkdir -p "$BACKUP_DIR" tar -czvf "$BACKUP_DIR/nodejs-$TIMESTAMP.tar.gz" "$LOG_DIR"/*.log - 添加cron任务:
crontab -e,添加0 2 * * * /usr/local/bin/backup-node-logs.sh(每天凌晨2点执行)
- 编写脚本(如
-
远程备份(rsync)
- 同步到远程服务器:
可结合cron定时执行,或通过脚本自动化rsync -avz /var/log/nodejs/ user@remote-server:/backup/nodejs-logs/
- 同步到远程服务器:
-
第三方日志库(如Winston)
- 安装Winston:
npm install winston winston-daily-rotate-file - 配置轮转:
const winston = require('winston'); const logger = winston.createLogger({ transports: [ new winston.transports.DailyRotateFile({ filename: '/var/log/nodejs/app-%DATE%.log', datePattern: 'YYYY-MM-DD', zippedArchive: true, maxSize: '50m', maxFiles: '15d' }) ] });
- 安装Winston:
注意事项:
- 确保备份目录权限正确(如
/backup目录属主为root,权限755)。 - 定期测试备份文件是否可正常恢复。
- 生产环境中建议结合logrotate与远程备份,避免单点故障。
以上就是关于“Ubuntu上Node.js日志的备份策略”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm