Ubuntu Node.js日志如何备份与恢复
备份方法
-
手动备份
- 找到日志文件路径(如
~/.pm2/logs/
、/var/log/nodeapp/
或自定义路径)。 - 使用
tar
命令压缩备份:tar -czvf /path/to/backup/logs_backup_$(date +%Y%m%d).tar.gz /path/to/logs/
- 找到日志文件路径(如
-
定时任务备份
- 编写脚本
backup_logs.sh
:#!/bin/bash LOG_DIR="/path/to/logs" BACKUP_DIR="/path/to/backup" TIMESTAMP=$(date +%Y%m%d) mkdir -p "$BACKUP_DIR" tar -czvf "$BACKUP_DIR/logs_$TIMESTAMP.tar.gz" "$LOG_DIR"
- 添加
cron
定时任务(如每天凌晨2点执行):crontab -e # 添加行:0 2 * * * /path/to/backup_logs.sh
- 编写脚本
-
工具自动备份
- 使用
logrotate
(系统自带):- 创建配置文件
/etc/logrotate.d/nodeapp
:/path/to/logs/*.log { daily rotate 7 compress missingok create 0640 root root }
- 手动测试:
sudo logrotate -vf /etc/logrotate.d/nodeapp
。
- 创建配置文件
- 使用
pm2
内置日志管理(需配合pm2-logrotate
模块)。
- 使用
恢复方法
-
直接还原
- 停止 Node.js 应用(避免日志冲突)。
- 解压备份文件到原路径:
tar -xzvf /path/to/backup/logs_backup_YYYYMMDD.tar.gz -C /path/to/logs/
- 重启应用:
node app.js
或pm2 restart
。
-
工具恢复
- 若使用
logrotate
,可通过配置postrotate
脚本自动重启服务。 - 系统级日志(如
journalctl
)可通过时间戳筛选恢复:journalctl -u my-nodejs-app --since "2025-01-01" --until "2025-01-02" > /path/to/logs/app.log
- 若使用
注意事项
- 定期清理过期备份,避免占用磁盘空间。
- 敏感日志需加密存储,确保权限安全。
- 生产环境建议结合监控工具(如 ELK)实现日志集中管理。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权请联系我们,一经查实立即删除!