溫馨提示×

Ubuntu上Node.js日志的備份策略

小樊
43
2025-08-31 04:20:09
欄目: 編程語言

以下是Ubuntu上Node.js日志的備份策略,可按需選擇或組合使用:

  1. logrotate工具(推薦)

    • 安裝sudo apt-get install logrotate
    • 配置:在/etc/logrotate.d/下創建配置文件(如nodejs),內容示例:
      /var/log/nodejs/*.log {
          daily
          rotate 7
          compress
          missingok
          notifempty
          copytruncate
          dateext
      }
      
      (參數說明:每天輪轉,保留7天,壓縮舊日志,自動截斷原文件)
  2. PM2內置輪轉(需使用PM2管理進程)

    • 安裝PM2sudo 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  # 壓縮舊日志
      
  3. 手動腳本+定時任務(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點執行)
  4. 遠程備份(rsync)

    • 同步到遠程服務器
      rsync -avz /var/log/nodejs/ user@remote-server:/backup/nodejs-logs/
      
      可結合cron定時執行,或通過腳本自動化
  5. 第三方日志庫(如Winston)

    • 安裝Winstonnpm 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'
          })
        ]
      });
      

注意事項

  • 確保備份目錄權限正確(如/backup目錄屬主為root,權限755)。
  • 定期測試備份文件是否可正?;謴?。
  • 生產環境中建議結合logrotate與遠程備份,避免單點故障。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女