在 Linux 上备份 JS(JavaScript)日志,常见做法取决于日志来源(Node.js、前端、Nginx、Docker 等)。下面按最常见场景给你一套实用方案。
logs/app.log~/.pm2/logs//var/log/nginx/access.log/var/log/nginx/error.logdocker logs 或挂载卷cp 或 tar 备份cp /path/to/app.log /backup/app-$(date +%F).log
或打包:
tar czf /backup/js-logs-$(date +%F).tar.gz /path/to/logs
logrotate(强烈推荐)适合长期运行的服务。
/etc/logrotate.d/nodejs/var/log/nodejs/*.log {
daily
rotate 30
compress
delaycompress
missingok
notifempty
create 0644 node node
copytruncate
}
✅ 优点
pm2 logs --out > /backup/pm2-out-$(date +%F).log
pm2 logs --err > /backup/pm2-err-$(date +%F).log
或定期清理:
pm2 flush
最佳实践:日志按天切分
new winston.transports.DailyRotateFile({
filename: 'logs/app-%DATE%.log',
datePattern: 'YYYY-MM-DD',
maxFiles: '30d'
})
docker run -v /backup/js-logs:/app/logs node-app
docker logs container_id > /backup/container.log 2>&1
rsync -avz /var/log/nodejs/ user@backup-server:/backup/nodejs/
crontab -e
0 2 * * * rsync -avz /path/to/logs/ /backup/logs/
JS 应用
↓
日志文件 / Docker / Winston
↓
logrotate 按天切割 + 压缩
↓
rsync / 对象存储(OSS / S3)
我可以直接帮你写 可用配置 + 一键脚本 ✅