溫馨提示×

nginx日志備份與恢復策略

小樊
43
2025-08-24 13:30:58
欄目: 編程語言

一、備份策略

  1. logrotate工具

    • 通過配置/etc/logrotate.d/nginx實現日志自動輪轉、壓縮和刪除,如每天輪轉、保留14天日志、壓縮舊日志。
    • 示例配置:
      /var/log/nginx/*.log {
          daily
          rotate 14
          compress
          missingok
          create 0640 nginx nginx
          postrotate
              kill -USR1 `cat /var/run/nginx.pid`
          endscript
      }
      
  2. 腳本+定時任務

    • 編寫Shell腳本備份日志到指定目錄,結合cron定時執行,支持按日期命名備份文件。
    • 示例腳本:
      #!/bin/bash
      LOG_PATH="/var/log/nginx"
      BACKUP_PATH="/data/nginx_backup/$(date -d "yesterday" +%F)"
      mkdir -p $BACKUP_PATH
      tar -czvf $BACKUP_PATH/access_$(date -d "yesterday" +%F).tar.gz $LOG_PATH/access.log
      
  3. 實時同步備份

    • 使用rsyncscp將日志實時同步到遠程服務器,避免單點故障。

二、恢復策略

  1. 誤刪恢復(文件未徹底清除)

    • 通過lsof命令查找被刪除但仍被Nginx進程占用的日志文件描述符,從/proc目錄復制回原路徑,然后重啟Nginx重新打開日志文件。
    • 操作步驟:
      lsof | grep deleted  # 查找被刪除的文件描述符
      cp /proc/<PID>/fd/<FD> /var/log/nginx/access.log  # 復制文件
      nginx -s reopen  # 重新加載日志文件
      
  2. 從備份恢復

    • 將備份的壓縮包解壓到原日志路徑,重啟Nginx即可。
    • 示例命令:
      tar -xzvf /backup/access_20250820.tar.gz -C /var/log/nginx/
      nginx -s reopen
      
  3. 日志損壞恢復

    • 若日志文件部分損壞,可通過dd命令嘗試修復,或從完整備份中恢復。

三、注意事項

  • 權限管理:確保備份目錄權限正確,避免未授權訪問。
  • 存儲安全:定期清理過期備份,異地存儲重要日志以防本地故障。
  • 測試驗證:定期測試備份文件的可恢復性,確保流程可靠。

參考來源:

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