日誌問題和 bash 腳本

日誌問題和 bash 腳本

我有 11 台 Debian 伺服器在機架空間雲端託管上運行。所有運行 VHCS2 進行託管管理。 1 台伺服器用於應用程序,10 台伺服器僅用於 smtp。我的問題是關於 smtp 伺服器的。每台伺服器託管 1 個網域。我的問題是當我的客戶端使用 smtp 時,會在此目錄中建立日誌

/var/log/

但在 24 小時內驅動器已滿且伺服器拒絕所有 smtp 連線。然後我刪除了日誌並運行以下命令來檢查磁碟空間。

df -h

但它顯示硬碟仍然已滿並且伺服器仍然拒絕 smtp 連線。然後我按照命令運行以查看真相

du --max-depth=1 -h

它展示了真相。實際使用的磁碟空間。然後我重新啟動伺服器,現在伺服器運作正常。但幾個小時後,同樣的情況發生了。然後我創建了以下腳本。

#!/bin/sh

rm -fr /var/log/*
rm -fr /var/log/apache2/*.log
rm -fr /var/log/apache2/*.log.*
rm -fr /var/log/apache2/users/*
rm -fr /var/log/apache2/backup/*

reboot

它工作了幾天,但之後日誌再次填滿硬碟。

現在我想要以下解決方案。如果有人能幫助我的話。

  1. 當我從伺服器刪除檔案時,硬碟將釋放而無需重新啟動
  2. 日誌應在特定範圍內。就像特定大小的檔案一樣,舊資料會被新資料覆蓋

答案1

  1. 單獨刪除日誌檔是沒有幫助的。您需要告訴守護程序關閉日誌文件,通常是透過向其發送 SIGHUP 信號。
  2. logrotate應該處理日誌,並且它可以使用各種標準來確定何時應該輪換日誌。
  3. 您的日誌已滿可怕快速地。要么找出日誌中充斥的內容,要么將日誌發送到另一台計算機進行處理和存儲,或者在 /var/log 處安裝一個單獨的捲,以便它成為唯一受影響的捲。

答案2

您確實需要弄清楚哪些日誌正在填充磁碟。一旦您知道哪些日誌出現問題,請查看它們並了解它們為何增長如此之快。

是否記錄了太多資訊?降低應用程式的日誌記錄等級。
是否記錄了很多錯誤?調查並修復。

一旦您控制了日誌,您就可以用來logrotate幫助管理它們。

相關內容